تخصيص إضافة Cordova
إشعارات الدفع في الواجهة الأمامية
Anchor link toعند تلقي إشعار دفع في الخلفية، لا يتم تشغيل أي أحداث حتى يتم النقر على إشعار الدفع. بعد فتحه، تقوم إضافة Pushwoosh بتشغيل حدثي push-receive و push-notification.
عندما يتم تلقي إشعار دفع في الواجهة الأمامية، تقوم الإضافة بتشغيل حدث push-receive تلقائيًا، وتنشئ إشعارًا في مركز الإشعارات (Notification Center). عند فتح هذا الإشعار، يتم تشغيل حدث push-notification.
يمكنك الاستماع إلى حدث push-receive للتفاعل فورًا مع إشعار الدفع في حال تم تلقيه في الواجهة الأمامية، على سبيل المثال، تحديث المحتوى على الصفحة الحالية في تطبيقك. من ناحية أخرى، يُستخدم push-notification للتفاعل مع حدث النقر على الإشعار، والذي يتطلب تفاعل المستخدم، على سبيل المثال، للتنقل داخل تطبيقك، أو تشغيل عملية جديدة في تطبيقك، إلخ.
لتغيير مظهر إشعار الدفع في الواجهة الأمامية، يمكنك استخدام تفضيلي IOS_FOREGROUND_ALERT_TYPE و ANDROID_FOREGROUND_PUSH:
IOS_FOREGROUND_ALERT_TYPE
NONE– عدم عرض إشعار عندما يكون التطبيق في الواجهة الأمامية (الافتراضي)BANNER– يعرض تنبيهًا على شكل لافتة داخل التطبيقALERT– إشعار تنبيه
ANDROID_FOREGROUND_PUSH
true– عدم معالجة إشعارات الدفع في الواجهة الأمامية تلقائيًاfalse– معالجة إشعارات الدفع في الواجهة الأمامية تلقائيًا (الافتراضي)
مثال:
cordova plugin add pushwoosh-cordova-plugin --variable IOS_FOREGROUND_ALERT_TYPE="ALERT" --variable ANDROID_FOREGROUND_PUSH="true"صوت إشعار الدفع المخصص
Anchor link toلتمكين صوت إشعار مخصص على Android، ضع ملفات الصوت في مجلد www/res وحدد كل صوت في config.xml:
<?xml version=‘1.0’ encoding=‘utf-8’?><widget id="YOUR_ID" version="1.0.0" xmlns="http://www.w3.org/ns/widgets” xmlns:cdv=“http://cordova.apache.org/ns/1.0"> ... <platform name="android"> <allow-intent href="market:*" /> ... <-- Add this line for each sound --> <resource-file src="www/res/push.wav" target="res/raw/push.wav" /> </platform></widget>ستكون الأصوات متاحة في القائمة المنسدلة Sound في لوحة Send Push.
على iOS، لا يتم ربط ملفات الصوت تلقائيًا بتطبيق Pushwoosh حتى الآن، ولكن يمكن استخدامها يدويًا، على سبيل المثال، www/res/sound_name.wav.
أيقونة إشعار الدفع المخصصة
Anchor link toيمكن تخصيص أيقونة إشعار الدفع على Android محليًا باستخدام pw_notification كاسم مورد لهذه الأيقونة (انظر العينة 1 2)؛ أو عن بعد عن طريق الإشارة إلى أي اسم مورد في إعداد Icon في لوحة Send Push.
بيانات إشعار الدفع المخصصة
Anchor link toيمكن إرسال بيانات إشعار الدفع المخصصة باستخدام إعداد Action في لوحة Send Push. لتلقي ومعالجة هذه البيانات، استخدم الكود التالي:
document.addEventListener('push-notification', function(event) { var message = event.notification.message; // Push message var userData = event.notification.userdata; // Custom push data
if (userData) { // handle custom push data here } });التحكم في مستوى السجل (Log level)
Anchor link toللمساعدة في تصحيح الأخطاء والتكامل، سيقوم SDK بطباعة جميع الطلبات إلى وحدة التحكم (console) بشكل افتراضي. عندما تكون جاهزًا للبناء الإنتاجي، قم بتعيين متغير LOG_LEVEL إلى إحدى القيم التالية:
NONE– لا توجد سجلات من SDKERROR– عرض الأخطاء فقط في وحدة التحكمWARNING– إظهار التحذيراتINFO– إظهار الرسائل المعلوماتيةDEBUG– إظهار كل شيء، بما في ذلك معلومات تصحيح الأخطاء (الافتراضي)
مثال:
cordova plugin add pushwoosh-cordova-plugin --variable LOG_LEVEL="INFO"الروابط العميقة (Deep linking)
Anchor link toنوصي باستخدام https://github.com/EddyVerbruggen/Custom-URL-scheme
من السهل جدًا إعداد الروابط العميقة لـ Cordova وهي تعمل مع وظيفة الروابط العميقة في Pushwoosh مباشرة.
يمكنك العثور على معلومات التثبيت والاستخدام في هذا الدليل أو في وثائق الإضافة.
جسر Rich Media JS
Anchor link toيمكنك استدعاء دوال JS الخاصة بك من Rich Media في Cordova WebView عبر واجهات javascript.
يجب أن يكون الاستدعاء من Rich Media بالتنسيق التالي:
<interface>.callFunction(‘<function_name>’, <params_string>)
مثال:
1. أنشئ Rich Media مع استدعاء javascript:
testBridge.callFunction('testFunction', JSON.stringify({'param1' : 1, 'param2':'test'}))2. أضف واجهة javascript إلى مشروعك:
pushNotification.addJavaScriptInterface('testBridge');3. أضف الدالة:
function testFunction(params) { alert("Bridge is working! " + params.param1 + " " + params.param2);}استخدام إضافة Pushwoosh مع خدمات FCM الأخرى
Anchor link toإذا كان تطبيقك يستخدم إضافات أخرى تعتمد على firebase-messaging، فقد يؤدي ذلك إلى تعارضات، أو إلى عدم عمل إحدى الإضافات كما هو متوقع. لحل هذا التعارض، يمكنك إضافة فئة FirebaseMessagingService مخصصة ستقوم بتوجيه إشعارات الدفع بين الإضافات. تحتوي إضافة Pushwoosh Cordova على قالب لهذه الفئة يمكنك استخدامه كما هو لفرض مرور جميع الإشعارات عبر معالجات Pushwoosh أو تعديله لمعالجة الإشعارات من مقدمي خدمات آخرين أيضًا. لتمكين القالب، قم بإلغاء التعليق على الأسطر التالية في ملف plugin.xml الخاص بالإضافة:
<service android:name="com.pushwoosh.plugin.pushnotifications.CustomFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>شاركنا ملاحظاتك
Anchor link toتساعدنا ملاحظاتك في إنشاء تجربة أفضل، لذلك نود أن نسمع منك إذا واجهت أي مشاكل أثناء عملية تكامل SDK. إذا واجهت أي صعوبات، فلا تتردد في مشاركة أفكارك معنا عبر هذا النموذج.