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

دليل التكامل الأساسي لـ Capacitor SDK

يحتوي هذا القسم على معلومات حول كيفية دمج Pushwoosh Capacitor SDK في تطبيقك.

المتطلبات الأساسية

Anchor link to

لدمج Pushwoosh Capacitor SDK في تطبيقك، ستحتاج إلى ما يلي:

خطوات التكامل

Anchor link to

1. إضافة تبعية Pushwoosh Capacitor SDK

Anchor link to

أضف تبعية Pushwoosh Capacitor SDK إلى مشروعك:

Terminal window
npm install pushwoosh-capacitor-plugin

قم بمزامنة تكوين Capacitor:

Terminal window
npx cap sync

1.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 افتراضيًا:

Terminal window
npx cap add ios

لاستخدام CocoaPods بدلاً من ذلك، شغّل npx cap add ios --packagemanager CocoaPods.

مع 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:

index.js
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Initialize the SDK
Pushwoosh.onDeviceReady({
appid: "__YOUR_APP_CODE__"
});
// Register for push notifications
Pushwoosh.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 to

3.1 القدرات (Capabilities)

Anchor link to

لتمكين الإشعارات الفورية في مشروعك، تحتاج إلى إضافة قدرات معينة.

في قسم Signing & Capabilities، أضف القدرات التالية:

  • Push Notifications
  • Background 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:

info.plist
<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 بنفسك، لأن الهدف لا يرث تبعيات المكوّن الإضافي:

    1. افتح هدف الامتداد > General > Frameworks and Libraries.
    2. أضف المنتج PushwooshFramework من الحزمة Pushwoosh-XCFramework. استخدم الإصدار الموجود بالفعل في Package.resolved.

    إذا قمت بالترحيل من CocoaPods، فتأكد من أن الامتداد لم يعد يحصل على PushwooshXCFramework كـ pod، حتى لا يتضمن التطبيق SDK مرتين.

بعد ذلك، أضف import PushwooshFramework في كود الامتداد. لا يحتاج هدف App إلى أي شيء إضافي، لأنه يحصل على Pushwoosh SDK من خلال المكوّن الإضافي.

4. الإعداد الأصلي لـ Android

Anchor link to

4.1 تثبيت التبعيات

Anchor link to

تأكد من إضافة التبعيات والمكونات الإضافية المطلوبة إلى نصوص Gradle الخاصة بك:

أضف المكون الإضافي Google Services Gradle إلى تبعيات build.gradle على مستوى المشروع:

android/build.gradle
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}

طبق المكون الإضافي في ملف build.gradle على مستوى التطبيق:

app/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>:

AndroidManifest.xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />

هام: تأكد من منح الرمز المميز حق الوصول إلى التطبيق الصحيح في لوحة تحكم Pushwoosh. اعرف المزيد

5. تشغيل المشروع

Anchor link to
  1. قم ببناء وتشغيل المشروع.
  2. اذهب إلى لوحة تحكم Pushwoosh و أرسل إشعارًا فوريًا.
  3. يجب أن ترى الإشعار في التطبيق.

التكامل الممتد

Anchor link to

في هذه المرحلة، لقد قمت بالفعل بدمج SDK ويمكنك إرسال واستقبال الإشعارات الفورية. الآن، دعنا نستكشف الوظائف الأساسية.

مستمعو أحداث الإشعارات الفورية

Anchor link to

في Pushwoosh Capacitor SDK، هناك طريقتان للاستدعاء (callback) للتعامل مع الإشعارات الفورية:

  • يتم تشغيل pushReceivedCallback عند استلام إشعار فوري
  • يتم تشغيل pushOpenedCallback عندما يفتح المستخدم إشعارًا

يجب عليك إعداد هذه الاستدعاءات مباشرة بعد تهيئة SDK:

index.js
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Set up push received callback
await 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 callback
await 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

إذا لم يتم تسليم إشعار فوري، فابحث عن رمز الخطأ الخاص بمنصتك في أخطاء الإرسال لمعرفة معناه وكيفية إصلاحه.

إذا واجهت أي مشاكل أثناء عملية التكامل، يرجى الرجوع إلى قسم الدعم والمجتمع.