دليل التكامل الأساسي لـ Capacitor SDK
يحتوي هذا القسم على معلومات حول كيفية دمج Pushwoosh Capacitor SDK في تطبيقك.
المتطلبات الأساسية
Anchor link toلدمج Pushwoosh Capacitor SDK في تطبيقك، ستحتاج إلى ما يلي:
خطوات التكامل
Anchor link to1. إضافة تبعية Pushwoosh Capacitor SDK
Anchor link toأضف تبعية Pushwoosh Capacitor SDK إلى مشروعك:
npm install pushwoosh-capacitor-pluginقم بمزامنة تكوين Capacitor:
npx cap sync1.1 اختر مدير حزم iOS
Anchor link toيثبّت npx cap sync جزء iOS من المكوّن الإضافي باستخدام مدير الحزم الذي يستخدمه مشروع Capacitor الخاص بك: Swift Package Manager أو CocoaPods. يوفّر كلاهما الإصدار نفسه من Pushwoosh SDK الأصلي وInbox UI. يتوفر دعم Swift Package Manager مع Capacitor 7 وCapacitor 8.
يحتفظ المشروع الحالي بمدير الحزم الخاص به: إذا كان ios/App/CapApp-SPM موجودًا، يستخدم Capacitor CLI مدير Swift Package Manager، وإلا يستخدم CocoaPods. لمنصة iOS جديدة:
ينشئ Capacitor 8 مشروع Swift Package Manager افتراضيًا:
npx cap add iosلاستخدام CocoaPods بدلاً من ذلك، شغّل npx cap add ios --packagemanager CocoaPods.
ينشئ Capacitor 7 مشروع CocoaPods افتراضيًا. لاستخدام Swift Package Manager، شغّل:
npx cap add ios --packagemanager SPMينشئ الأمر المشروع ثم يتوقف مع الخطأ ENOENT ... Podfile أثناء محاولة تشغيل pod install. يتم إنشاء المشروع بشكل صحيح. أكمل الإعداد باستخدام:
npx cap sync iosمع Swift Package Manager، يضيف Capacitor CLI المكوّن الإضافي إلى ios/App/CapApp-SPM، ويجلب المكوّن الإضافي Pushwoosh iOS SDK وInbox UI. لا تُضف Pushwoosh SDK إلى التطبيق مرة ثانية، لا كـ pod ولا كحزمة بإصدار مختلف.
2. تهيئة Capacitor SDK
Anchor link toفي ملف JavaScript الرئيسي الخاص بك، قم باستيراد وتهيئة Pushwoosh SDK:
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Initialize the SDKPushwoosh.onDeviceReady({ appid: "__YOUR_APP_CODE__"});
// Register for push notificationsPushwoosh.registerDevice() .then(result => { console.log("Push token:", result.pushToken); // Handle successful registration }) .catch(error => { console.error("Failed to register device:", error); // Handle registration error });حيث:
__YOUR_APP_CODE__هو رمز التطبيق من لوحة تحكم Pushwoosh.
3. الإعداد الأصلي لـ iOS
Anchor link to3.1 القدرات (Capabilities)
Anchor link toلتمكين الإشعارات الفورية في مشروعك، تحتاج إلى إضافة قدرات معينة.
في قسم Signing & Capabilities، أضف القدرات التالية:
Push NotificationsBackground Modes. بعد إضافة هذه القدرة، حدد مربعRemote notifications.
إذا كنت تنوي استخدام Time Sensitive Notifications (iOS 15+)، أضف أيضًا قدرة Time Sensitive Notifications.
3.2 Info.plist
Anchor link toفي ملف ios/App/App/Info.plist الخاص بك، اضبط مفتاح __PUSHWOOSH_DEVICE_API_TOKEN__ على Pushwoosh Device API Token:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>3.3 تتبع تسليم الرسائل
Anchor link toيجب عليك إضافة هدف Notification Service Extension إلى مشروعك. هذا ضروري لتتبع التسليم بدقة وميزات مثل Rich Media على iOS.
اتبع خطوات الدليل الأصلي لإضافة هدف الامتداد وكود Pushwoosh اللازم داخله. أضف Pushwoosh SDK إلى هدف الامتداد وفقًا لمدير الحزم الذي تستخدمه:
-
CocoaPods: اتبع خطوة التبعيات لـ Notification Service Extension (CocoaPods فقط) في الدليل الأصلي. في
ios/App/Podfile، أضفpod 'PushwooshXCFramework'بدون إصدار إلى هدف الامتداد، بحيث يُحل إلى الإصدار الذي يستخدمه المكوّن الإضافي، ثم شغّلnpx cap sync ios. -
Swift Package Manager: تخطَّ خطوة تبعيات CocoaPods في الدليل الأصلي. أضف SDK إلى هدف الامتداد في Xcode بنفسك، لأن الهدف لا يرث تبعيات المكوّن الإضافي:
- افتح هدف الامتداد > General > Frameworks and Libraries.
- أضف المنتج
PushwooshFrameworkمن الحزمةPushwoosh-XCFramework. استخدم الإصدار الموجود بالفعل فيPackage.resolved.
إذا قمت بالترحيل من CocoaPods، فتأكد من أن الامتداد لم يعد يحصل على
PushwooshXCFrameworkكـ pod، حتى لا يتضمن التطبيق SDK مرتين.
بعد ذلك، أضف import PushwooshFramework في كود الامتداد. لا يحتاج هدف App إلى أي شيء إضافي، لأنه يحصل على Pushwoosh SDK من خلال المكوّن الإضافي.
4. الإعداد الأصلي لـ Android
Anchor link to4.1 تثبيت التبعيات
Anchor link toتأكد من إضافة التبعيات والمكونات الإضافية المطلوبة إلى نصوص Gradle الخاصة بك:
أضف المكون الإضافي Google Services Gradle إلى تبعيات build.gradle على مستوى المشروع:
buildscript { dependencies { classpath 'com.google.gms:google-services:4.3.15' }}طبق المكون الإضافي في ملف build.gradle على مستوى التطبيق:
apply plugin: 'com.google.gms.google-services'4.2 إضافة ملف تكوين Firebase
Anchor link toضع ملف google-services.json في مجلد android/app في دليل مشروعك.
4.3 إضافة بيانات Pushwoosh الوصفية
Anchor link toفي ملف main/AndroidManifest.xml الخاص بك، أضف Pushwoosh Device API Token داخل علامة <application>:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />هام: تأكد من منح الرمز المميز حق الوصول إلى التطبيق الصحيح في لوحة تحكم Pushwoosh. اعرف المزيد
5. تشغيل المشروع
Anchor link to- قم ببناء وتشغيل المشروع.
- اذهب إلى لوحة تحكم Pushwoosh و أرسل إشعارًا فوريًا.
- يجب أن ترى الإشعار في التطبيق.
التكامل الممتد
Anchor link toفي هذه المرحلة، لقد قمت بالفعل بدمج SDK ويمكنك إرسال واستقبال الإشعارات الفورية. الآن، دعنا نستكشف الوظائف الأساسية.
مستمعو أحداث الإشعارات الفورية
Anchor link toفي Pushwoosh Capacitor SDK، هناك طريقتان للاستدعاء (callback) للتعامل مع الإشعارات الفورية:
- يتم تشغيل
pushReceivedCallbackعند استلام إشعار فوري - يتم تشغيل
pushOpenedCallbackعندما يفتح المستخدم إشعارًا
يجب عليك إعداد هذه الاستدعاءات مباشرة بعد تهيئة SDK:
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Set up push received callbackawait Pushwoosh.pushReceivedCallback((notification, err) => { if (err) { console.error("Failed to process received notification:", err); } else { console.log("Push received:", JSON.stringify(notification)); // Handle the received notification }});
// Set up push opened callbackawait Pushwoosh.pushOpenedCallback((notification, err) => { if (err) { console.error("Failed to process opened notification:", err); } else { console.log("Push opened:", JSON.stringify(notification)); // Handle the opened notification }});تكوين المستخدم
Anchor link toمن خلال التركيز على سلوك وتفضيلات المستخدم الفردية، يمكنك تقديم محتوى مخصص، مما يؤدي إلى زيادة رضا المستخدم وولائه.
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration { async afterUserLogin(user) {
// Set user ID Pushwoosh.setUserId(user.getId);
// Setting additional user information as tags for Pushwoosh await Pushwoosh.setTags({ "age": user.getAge(), "name": user.getName(), "last_login": user.getLastLoginDate() }); }}العلامات (Tags)
Anchor link toالعلامات هي أزواج من المفاتيح والقيم يتم تعيينها للمستخدمين أو الأجهزة، مما يسمح بالتقسيم بناءً على سمات مثل التفضيلات أو السلوك، مما يتيح المراسلة المستهدفة.
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class UpdateUser { async afterUserUpdateProfile(user) {
// Set list of favorite categories await Pushwoosh.setTags({ "favorite_categories": user.getFavoriteCategoriesList() });
// Set payment information await Pushwoosh.setTags({ "is_subscribed": user.isSubscribed(), "payment_status": user.getPaymentStatus(), "billing_address": user.getBillingAddress() }); }}الأحداث (Events)
Anchor link toالأحداث هي إجراءات أو وقائع محددة للمستخدم داخل التطبيق يمكن تتبعها لتحليل السلوك وتشغيل الرسائل أو الإجراءات المقابلة.
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration {
// Track login event afterUserLogin(user) { Pushwoosh.postEvent("login", { "name": user.getName(), "last_login": user.getLastLoginDate() }); }
// Track purchase event afterUserPurchase(product) { Pushwoosh.postEvent("purchase", { "product_id": product.getId(), "product_name": product.getName(), "price": product.getPrice(), "quantity": product.getQuantity() }); }}استكشاف الأخطاء وإصلاحها
Anchor link toإذا لم يتم تسليم إشعار فوري، فابحث عن رمز الخطأ الخاص بمنصتك في أخطاء الإرسال لمعرفة معناه وكيفية إصلاحه.
إذا واجهت أي مشاكل أثناء عملية التكامل، يرجى الرجوع إلى قسم الدعم والمجتمع.