iOS Integration iOS

اتصال Pushfa iOS SDK به AppDelegate و SwiftUI

SDK پوشفا را با ساختار فعلی اپ iOS هماهنگ کنید: توکن APNs، توابع دریافت پیام در پس‌زمینه، بازکردن لینک‌ها و افزونه پردازش اعلان را به هم متصل کنید.

وقتی Firebase swizzling غیرفعال است

اگر FirebaseAppDelegateProxyEnabled را خاموش کرده‌اید، توکن APNs را دستی به SDK تحویل دهید.

func application(
    _ application: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
    Pushfa.setAPNSToken(deviceToken)
}

اپ دارای UNUserNotificationCenterDelegate

SDK delegate موجود اپ را جایگزین نمی‌کند. پاسخ کلیک را از delegate فعلی به SDK تحویل دهید تا گزارش کلیک و Deep Link حفظ شود.

func userNotificationCenter(
    _ center: UNUserNotificationCenter,
    didReceive response: UNNotificationResponse
) async {
    await Pushfa.handleNotificationResponse(response)
}

اپ دارای Firebase MessagingDelegate

SDK delegate موجود Firebase را جایگزین نمی‌کند. توکن FCM جدید را از delegate فعلی اپ به SDK تحویل دهید.

import FirebaseMessaging

func messaging(
    _ messaging: Messaging,
    didReceiveRegistrationToken fcmToken: String?
) {
    if let fcmToken { Pushfa.setFCMToken(fcmToken) }
}

دریافت اعلان هنگام استفاده از اپ دارای delegate

func userNotificationCenter(
    _ center: UNUserNotificationCenter,
    willPresent notification: UNNotification
) async -> UNNotificationPresentationOptions {
    Pushfa.handleForegroundNotification(notification)
}

Background callback

func application(
    _ application: UIApplication,
    didReceiveRemoteNotification userInfo: [AnyHashable: Any],
    fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void
) {
    Pushfa.handleRemoteNotification(
        userInfo,
        fetchCompletionHandler: completionHandler
    )
}

Action Button و Deep Link

iOS عنوان Actionها را هنگام ثبت Notification Category تعیین می‌کند؛ عنوان دکمه چپ و راست را در PushfaConfig تنظیم کنید. URL اختصاصی هر پیام از داده‌های پیام خوانده می‌شود. برای مسیر نسبی، deepLinkBaseURL را مقداردهی کنید.

let config = PushfaConfig(
    apiPublicKey: "YOUR_PUBLIC_KEY",
    deepLinkBaseURL: URL(string: "myapp://"),
    leftActionTitle: "مشاهده",
    rightActionTitle: "باز کردن"
)

حریم خصوصی و App Store

SDK دارای Privacy Manifest برای UserDefaults است و Tracking انجام نمی‌دهد. اپ میزبان باید کاربرد واقعی شناسه کاربر در سیستم شما (External ID)، Alias، Visit و رویداد را در Privacy Policy و پاسخ‌های App Store Connect اعلام کند.

Ctrl+I