انتقل إلى المحتوى

الأسئلة الشائعة حول iOS SDK

الأسئلة الشائعة حول تكامل iOS

Anchor link to

س: كيف يمكنني تثبيت Pushwoosh SDK في مشروع iOS الخاص بي؟

Anchor link to

يمكنك دمج Pushwoosh SDK باستخدام إما Swift Package Manager أو CocoaPods.

س: كيف أقوم بتثبيت Pushwoosh SDK باستخدام Swift Package Manager؟

Anchor link to

في Xcode، انتقل إلى قسم Package Dependencies وأضف الحزمة باستخدام عنوان URL التالي: https://github.com/Pushwoosh/Pushwoosh-XCFramework.

س: كيف أقوم بتثبيت Pushwoosh SDK باستخدام CocoaPods؟

Anchor link to

افتح Podfile الخاص بمشروعك وأضف السطر pod 'PushwooshXCFramework'. ثم، قم بتشغيل الأمر pod install في الطرفية.

س: ما هي الإمكانيات التي أحتاج إلى إضافتها إلى مشروعي لتمكين الإشعارات الفورية (Push Notifications)؟

Anchor link to

في قسم Signing & Capabilities في إعدادات مشروعك، تحتاج إلى إضافة إمكانيات Push Notifications و Background Modes. عند إضافة Background Modes، تأكد من تحديد مربع Remote notifications.

س: ما هي الإمكانية الإضافية المطلوبة للإشعارات الحساسة للوقت (Time Sensitive Notifications)؟

Anchor link to

إذا كنت تنوي استخدام Time Sensitive Notifications (iOS 15+)، فأنت بحاجة أيضًا إلى إضافة إمكانية Time Sensitive Notifications.

س: أين أحتاج إلى إضافة كود تهيئة Pushwoosh؟

Anchor link to

يجب إضافة كود التهيئة إلى فئة AppDelegate الخاصة بك.

س: ما هو كود التهيئة الذي يجب أن أضيفه في AppDelegate الخاص بـ SwiftUI؟

Anchor link to

يرجى الرجوع إلى مثال كود Swift المقدم لدمج Pushwoosh في مشروع SwiftUI.

س: ما هو كود التهيئة الذي يجب أن أضيفه في AppDelegate قياسي لـ Swift؟

Anchor link to

يرجى الرجوع إلى مثال كود Swift المقدم لدمج Pushwoosh في مشروع Swift قياسي.

س: ما هو كود التهيئة الذي يجب أن أضيفه في AppDelegate لـ Objective-C؟

Anchor link to

يرجى الرجوع إلى مثال كود Objective-C المقدم لدمج Pushwoosh في مشروع Objective-C.

س: ما هي المفاتيح التي أحتاج إلى إضافتها إلى ملف Info.plist الخاص بي؟

Anchor link to

تحتاج إلى إضافة مفتاح Pushwoosh_APPID المعين إلى Application Code الخاص بك ومفتاح PW_API_TOKEN المعين إلى API Token الخاص بك في ملف Info.plist لتطبيقك.

س: ما هو الغرض من تتبع تسليم الرسائل؟

Anchor link to

يدعم Pushwoosh تتبع أحداث التسليم للإشعارات الفورية باستخدام Notification Service Extension.

س: كيف أضيف Notification Service Extension إلى مشروعي؟

Anchor link to

في Xcode، انتقل إلى File > New > Target…، اختر Notification Service Extension، واضغط على Next. أدخل اسمًا للهدف واضغط على Finish. عندما يُطلب منك التنشيط، اضغط على Cancel.

س: كيف أضيف Pushwoosh SDK إلى Notification Service Extension؟

Anchor link to

أضف مقتطف كود Swift أو Objective-C المقدم إلى ملف .swift أو .m الرئيسي لـ Notification Service Extension الخاص بك. يستخدم هذا الكود PWNotificationExtensionManager لمعالجة طلب الإشعار.

س: ما هو الغرض من App Groups؟

Anchor link to

إمكانية App Groups مطلوبة للسماح لـ Notification Service Extension بالاتصال بالتطبيق الرئيسي.

س: كيف أقوم بتمكين App Groups للهدف الرئيسي و Notification Service Extension؟

Anchor link to

لكلا الهدفين، انتقل إلى Signing & Capabilities، أضف إمكانية App Groups، وأنشئ مجموعة جديدة بالضغط على زر +. تأكد من أن اسم المجموعة يبدأ بـ group. واستخدم نفس اسم المجموعة لكلا الهدفين.

س: ما هي المفاتيح التي أحتاج إلى إضافتها إلى Info.plist الخاص بالهدف الرئيسي لـ App Groups؟

Anchor link to

في Info.plist الخاص بالهدف الرئيسي، أضف مفتاح PW_APP_GROUPS_NAME واضبط قيمته على اسم مجموعة App Groups الخاصة بك.

س: ما هي المفاتيح التي أحتاج إلى إضافتها إلى Info.plist الخاص بـ Notification Service Extension؟

Anchor link to

في Info.plist الخاص بـ Notification Service Extension، أضف مفتاح PW_APP_GROUPS_NAME (معين إلى اسم App Groups الخاص بك) ومفتاح Pushwoosh_APPID (معين إلى Application Code الخاص بك).

س: كيف أتحقق من تكامل Pushwoosh؟

Anchor link to

بعد بناء وتشغيل مشروعك، انتقل إلى Pushwoosh Control Panel وأرسل إشعارًا فوريًا إلى تطبيقك. يجب أن ترى الإشعار يظهر على جهازك.

س: ما هما الاستدعاءان الرئيسيان لمعالجة الإشعارات الفورية في Pushwoosh SDK؟

Anchor link to

الاستدعاءان الرئيسيان هما onMessageReceived و onMessageOpened.

س: متى يتم استدعاء onMessageReceived؟

Anchor link to

يتم استدعاء طريقة onMessageReceived عند استلام إشعار فوري من قبل التطبيق.

س: متى يتم استدعاء onMessageOpened؟

Anchor link to

يتم استدعاء طريقة onMessageOpened عندما يتفاعل المستخدم مع إشعار فوري ويفتحه.

س: كيف يمكنني الوصول إلى حمولة (payload) إشعار فوري تم استلامه أو فتحه؟

Anchor link to

يمكن الوصول إلى حمولة كائن PWMessage (الذي يتم تمريره إلى استدعاءات onMessageReceived و onMessageOpened) من خلال خاصية payload الخاصة به.

س: كيف يمكنني تعيين معرف مستخدم (user ID) في Pushwoosh؟

Anchor link to

استخدم طريقة setUserId(_:) لكائن Pushwoosh.sharedInstance()، ومرر معرف المستخدم كوسيط.

س: كيف يمكنني تعيين عنوان البريد الإلكتروني للمستخدم في Pushwoosh؟

Anchor link to

استخدم طريقة setEmail(_:) لكائن Pushwoosh.sharedInstance()، مع توفير البريد الإلكتروني للمستخدم.

كيف يمكنني تعيين معلومات مستخدم إضافية كعلامات (tags) في Pushwoosh؟

Anchor link to

استخدم طريقة setTags(_:) لكائن Pushwoosh.sharedInstance()، ومرر قاموسًا حيث تكون المفاتيح هي أسماء العلامات والقيم هي قيم العلامات المقابلة.

كيف يمكنني تتبع حدث مستخدم بسمات إضافية؟**

Anchor link to

استخدم طريقة postEvent(_:withAttributes:) لـ PWInAppManager.shared()، مع توفير اسم الحدث (على سبيل المثال، "login") وقاموس من السمات (على سبيل المثال، "name"، "last_login").

س: كيف يمكنني تتبع حدث شراء مستخدم مع تفاصيل المنتج؟

Anchor link to

استخدم طريقة postEvent(_:withAttributes:) لـ PWInAppManager.shared() مع اسم الحدث "purchase" وقاموس يحتوي على تفاصيل المنتج مثل "product_id"، "product_name"، "price"، و "quantity".

س: كيف أقوم بإعداد مفوض (delegate) للتعامل مع عرض الوسائط الغنية (rich media)؟

Anchor link to

في وحدة التحكم في العرض (view controller) أو فئة أخرى مناسبة، قم بالامتثال لبروتوكول PWRichMediaPresentingDelegate واضبط خاصية delegate لـ PWRichMediaManager.shared() على المثيل الممتثل الخاص بك.

س: كيف يمكنني تكوين نمط عرض الوسائط الغنية؟

Anchor link to

استخدم كائن PWModalWindowConfiguration.shared() لتكوين خصائص مثل موضع النافذة المشروطة ورسوميات العرض/الإخفاء باستخدام طريقة configureModalWindow(with:present:dismiss:).

س: ما هي المعلومات التي يمكنني الوصول إليها في طرق مفوض الوسائط الغنية؟**

Anchor link to

توفر طرق المفوض الوصول إلى كائن PWRichMedia، الذي يحتوي على معلومات حول محتوى الوسائط الغنية، بما في ذلك pushPayload الخاص به. توفر طريقة presentingDidFailForRichMedia:withError: أيضًا كائن Error يصف الفشل.

استكشاف الأخطاء وإصلاحها

Anchor link to

س: خطأ “Your provisioning profile does not have APS entry”

Anchor link to

إذا رأيت رسالة الخطأ “Your provisioning profile does not have APS entry.”، فتأكد من أن ملف تعريف التوفير (provisioning profile) الخاص بك متوافق مع الإشعارات الفورية ويحتوي على سلسلة aps-environment بقيمة production أو development. أسهل طريقة للتحقق هي فتح ملف تعريف التوفير المحمول في أي محرر نصوص والبحث عن سلسلة aps-environment. يجب أن تكون موجودة.

إذا كانت موجودة، واستمر ظهور الخطأ، فهذا يعني أن XCode لا يزال يختار ملف تعريف “غير متوافق مع الإشعارات الفورية”. يرجى التأكد من أنك توقع بالملف الصحيح - أحيانًا إذا كان لديك ملفا تعريف لنفس App ID، فإن XCode يخلط الأمور ويوقع بالملف القديم.

الخطوات الموصى بها هي:

  1. إزالة جميع ملفات تعريف XCode؛
  2. إضافة ملف التعريف الجديد والوحيد؛
  3. إعادة بناء التطبيق.

س: كيف يبدو رمز الإشعار الفوري لـ iOS و hwid؟

Anchor link to

رموز الإشعارات الفورية لأجهزة iOS هي سلاسل نصية مكونة من 64 رمزًا سداسيًا عشريًا. مثال على رمز الإشعار الفوري:
03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
تأكد من أن رموز الإشعارات الفورية لـ iOS التي تستخدمها عند استهداف أجهزة معينة في طلبات API الخاصة بك تكون بأحرف صغيرة.

يستخدم Pushwoosh IDFV كـ HWID للجهاز. لاحظ أنه قد يتغير في حالة قيام المستخدم بإعادة تثبيت جميع التطبيقات من بائع معين.

CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93

س: كيف يمكنني تشغيل وإيقاف اللافتة (banner) أثناء تشغيل تطبيقي؟

Anchor link to

بشكل افتراضي، يعرض أحدث إصدار من iOS SDK الخاص بنا لافتة الإشعار عندما يكون التطبيق قيد التشغيل في المقدمة.
يمكنك التحكم في هذا السلوك عن طريق تغيير العلامات التالية في Info.plist:

العلامة Pushwoosh_ALERT_TYPE – نوع سلسلة نصية، القيم هي:

  • BANNER – القيمة الافتراضية، تعرض تنبيه لافتة داخل التطبيق
  • ALERT – تنبيه إشعار
  • NONE – لا تعرض الإشعارات عندما يكون التطبيق في المقدمة

س: كيف أحصل على رمز الإشعار الفوري لجهاز iOS الخاص بي لاستخدامه في الأجهزة التجريبية (Test Devices)؟

Anchor link to

للحصول على رمز الإشعار الفوري لجهاز iOS الخاص بك،

  1. افتح Xcode => Devices & Simulators؛
  2. قم بتوصيل الجهاز التجريبي بجهاز الكمبيوتر الخاص بك؛
  3. حدد جهازك المتصل في قائمة الأجهزة على اليسار؛
  4. انقر فوق زر Open Console.

قم بتشغيل التطبيق الذي تحتاج إلى رمز الإشعار الفوري الخاص به، وحدد موقع رمز الإشعار الفوري لجهازك المكون من 64 حرفًا سداسيًا عشريًا في سطر “Registered for push notifications”:

س: لماذا لا يتم مسح الشارات (badges) بعد إلغاء تثبيت تطبيقي وإعادة تثبيته في فترة قصيرة؟

Anchor link to

هذا سلوك متوقع - تتم معالجة الشارات بواسطة iOS نفسه ويتم تخزين قيمها في تفضيلات التطبيق، والتي لا تتم إزالتها على الفور عند إلغاء تثبيت تطبيقك. تظل قيمة الشارة هناك لبعض الوقت في حالة إعادة التثبيت الفوري، مما يؤدي إلى عرض نفس الشارات بعد إعادة تثبيت التطبيق.