تتبع تسليم الرسائل في iOS
توجد طريقة API في Pushwoosh تتتبع تسليم إشعارات الدفع. لا تدعم تطبيقات iOS هذه الطريقة بشكل افتراضي حيث يتم التعامل مع إشعارات الدفع في iOS بواسطة نظام التشغيل، وليس بواسطة Pushwoosh SDK. ومع ذلك، يمكنك تنفيذ تتبع التسليم عن طريق إضافة Pushwoosh Notification Service Extension لتتبع تسليم الإشعارات إلى مشروعك. ستجد هنا خطوات تنفيذ تتبع تسليم الرسائل لتطبيقات iOS.
إضافة Notification Service Extension
Anchor link to-
في Xcode، اختر File > New > Target…
-
اختر Notification Service Extension واضغط على Next.
- أدخل اسم المنتج واضغط على Finish.
- اضغط على Cancel في نافذة Activate scheme.
بالضغط على إلغاء، فإنك تبقي Xcode يقوم بتصحيح أخطاء تطبيقك، بدلاً من الامتداد الذي أنشأته للتو. إذا قمت بتفعيله عن طريق الخطأ، يمكنك العودة لتصحيح أخطاء تطبيقك داخل Xcode.
التبعيات لـ Notification Service Extension (CocoaPods فقط)
Anchor link toملاحظة: إذا كنت تستخدم Swift Package Manager لإدارة التبعيات، يمكنك تخطي هذه الخطوة، حيث تتم إضافة التبعيات تلقائيًا.
افتح ملف Podfile الخاص بك وأضف التبعية للهدف (target):
target 'NotificationServiceExtension' do use_frameworks! pod 'PushwooshXCFramework'endقم بتشغيل الأوامر التالية في الطرفية (terminal) لتثبيت التبعيات:
rm -rf Podfile.lockpod deintegratepod setuppod repo updatepod installإضافة كود لتتبع أحداث تسليم الرسائل
Anchor link to- أضف الكود التالي إلى ملف NotificationService.m الخاص بك:
import UserNotificationsimport PushwooshFramework
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)? var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { PWNotificationExtensionManager.shared().handle(request, contentHandler: contentHandler) }}#import "PWNotificationExtensionManager.h"
@interface NotificationService : UNNotificationServiceExtension
@end
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler { [[PWNotificationExtensionManager sharedManager] handleNotificationRequest:request contentHandler:contentHandler];}
- (void)serviceExtensionTimeWillExpire { // Called just before the extension is terminated by the system. // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.}
@end- أضف Pushwoosh_APPID إلى info.plist الخاص بـ Notification Service Extension.
<key>Pushwoosh_APPID</key> <string>XXXXX-XXXXX</string>شاركنا ملاحظاتك
Anchor link toتساعدنا ملاحظاتك في إنشاء تجربة أفضل، لذلك نود أن نسمع منك إذا واجهت أي مشاكل أثناء عملية دمج SDK. إذا واجهت أي صعوبات، فلا تتردد في مشاركة أفكارك معنا عبر هذا النموذج.