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

واجهة برمجة تطبيقات الأنشطة المباشرة لنظام iOS

وثائق Apple:

للسماح لنقطة بناء Live Activity في Customer Journey ببناء نموذج حالة المحتوى الخاص بها من أسماء الحقول بدلاً من محرر JSON الخام، قم بنشر مخطط لـ attributes-type الخاص بك — راجع واجهة برمجة تطبيقات مخططات الأنشطة المباشرة.

startLiveActivity

Anchor link to

POST https://api.pushwoosh.com/json/1.3/startLiveActivity

يسمح بإنشاء الأنشطة المباشرة لنظام iOS.

نص الطلب

Anchor link to
المعلمةالنوعمطلوب/اختياريالوصف
applicationStringمطلوبرمز تطبيق Pushwoosh
authStringمطلوبرمز الوصول إلى واجهة برمجة التطبيقات (API) من لوحة تحكم Pushwoosh.
notificationsArrayمطلوبمصفوفة JSON لمعلمات الرسالة. انظر التفاصيل في جدول الإشعارات أدناه.

الإشعارات

Anchor link to

المعلمات المستخدمة في مصفوفة notifications:

المعلمةالنوعمطلوب/اختياريالوصف
contentStringمطلوب*نص التنبيه للدفع الذي يبدأ النشاط المباشر، والنص الاحتياطي الذي يظهر على الأجهزة التي تعمل بإصدارات iOS أقل من 16.1.
titleStringمطلوب*عنوان التنبيه للدفع الذي يبدأ النشاط المباشر.
live_activityObjectمطلوببيانات النشاط المباشر لإنشاء نشاط مباشر في iOS.
live_activity.content-stateObjectمطلوبمحتوى إشعار النشاط المباشر.
live_activity.attributes-typeStringمطلوبنوع السمات المستخدمة في النشاط المباشر.
live_activity.attributesObjectمطلوبسمات النشاط المباشر.
live_activity_idStringمطلوبمعرف فريد للنشاط المباشر. يستخدم لاستهداف هذا النشاط عند استدعاء updateLiveActivity. يجب أن يكون فريدًا لكل جلسة نشاط.
filterStringاختيارياسم فلتر Pushwoosh (شريحة). راجع اسم الشريحة / الفلتر. سيتم بدء النشاط المباشر على جميع الأجهزة التي تطابق هذا الفلتر.
devicesArray of Stringsاختياريقائمة بـ رموز الأجهزة. سيتم بدء النشاط المباشر فقط على الأجهزة المحددة.
send_dateStringاختيارييجدول الدفع الذي يبدأ النشاط المباشر لتاريخ ووقت محددين — يعمل مع استهداف filter أو devices. استخدم التنسيق YYYY-MM-DD HH:mm، أو now للبدء فورًا (وهذا هو الإعداد الافتراضي أيضًا عند حذف المعلمة). يجب ألا يكون أكثر من يوم واحد في الماضي أو 30 يومًا في المستقبل، وإلا سيتم رفض الطلب بخطأ تحقق.
timezoneStringاختياريالمنطقة الزمنية المستخدمة لتفسير send_date. إذا تم حذفها، يتم تفسير send_date بالتوقيت العالمي المنسق (UTC).
apns_priorityIntegerاختيارييتحكم في أولوية تسليم APNs لهذا الدفع الخاص بالنشاط المباشر. يقبل 10 (أولوية عالية، يتم تسليمها مع رأس apns-priority: 10 للعرض الفوري على شاشة مقفلة) أو 5 (أولوية منخفضة، يتم تسليمها مع apns-priority: 5 للحفاظ على بطارية الجهاز). أي قيمة أخرى تُعامل على أنها 5، بدون خطأ تحقق. كل دفع لنشاط مباشر يتم تعيينه افتراضيًا إلى الأولوية 5 بغض النظر عما إذا كان يحمل محتوى تنبيه (content/title) — قم بتعيين apns_priority: 10 بشكل صريح لطلب تسليم عالي الأولوية. انظر إشعارات الدفع الحساسة للوقت وأولوية التسليم أدناه.

ملاحظة: * يجب أن يكون أحد الحقلين content أو title على الأقل غير فارغ. يرفض Pushwoosh طلب البدء إذا كان كلاهما فارغًا.

مثال على الطلب

Anchor link to
{
"request": {
"application": "XXXXX-XXXXX",
"auth": "SECRET_API_TOKEN",
"notifications": [
{
"content": "Your order is being prepared",
"title": "Food Delivery",
"apns_priority": 10,
"live_activity": {
"event": "start",
"title": "Order status",
"content-state": {
"status": "Third",
"estimatedTime": "37 min",
"emoji": "👨‍🍳"
},
"attributes-type": "FoodDeliveryAttributes",
"attributes": {}
},
"live_activity_id": "FIRST_LIVE_ACTIVITY",
"filter": "FILTER_NAME_1"
}
]
}
}

مثال على الاستجابة

Anchor link to
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"XXXXX-XXXXXXXX-XXXXXXXX"
]
}
}

ملاحظة:

اقرأ هذا المقال لمعرفة المزيد حول العمل مع الأنشطة المباشرة باستخدام Pushwoosh iOS SDK.

updateLiveActivity

Anchor link to

POST https://api.pushwoosh.com/json/1.3/updateLiveActivity

يسمح بتحديث وإنهاء الأنشطة المباشرة لنظام iOS

نص الطلب

Anchor link to
المعلمةالنوعمطلوب/اختياريالوصف
authStringمطلوبرمز الوصول إلى واجهة برمجة التطبيقات (API) من لوحة تحكم Pushwoosh.
applicationStringمطلوبرمز تطبيق Pushwoosh
notificationsArrayمطلوبمصفوفة JSON لمعلمات الرسالة. انظر التفاصيل في جدول الإشعارات أدناه.

الإشعارات

Anchor link to

المعلمات المستخدمة في مصفوفة notifications:

المعلمةالنوعمطلوب/اختياريالوصف
live_activityObjectمطلوببيانات النشاط المباشر لتحديث النشاط المباشر في iOS.
live_activity.eventStringمطلوبيحدد نوع الحدث. استخدم "update" لتحديث النشاط المباشر أو "end" لإغلاقه.
live_activity.content-stateObjectمطلوبكائن يحتوي على أزواج مفتاح-قيمة يستخدم لتمرير البيانات إلى النشاط المباشر لتحديث محتواه.
live_activity.dismissal-dateIntegerاختياريالوقت (بالثواني) الذي يجب أن ينتهي فيه النشاط المباشر. عند end، احذف هذا الحقل لتستمر البطاقة في عرض آخر content-state لها حتى يزيلها iOS من تلقاء نفسه — انظر الملاحظة أدناه. حدد تاريخًا في الماضي لإزالة البطاقة بمجرد وصول هذا التحديث بدلاً من ذلك.
live_activity_idStringمطلوبالمعرف الفريد للنشاط المباشر المراد تحديثه. يجب أن يتطابق مع live_activity_id المستخدم في startLiveActivity. سيتم تسليم التحديث إلى جميع الأجهزة التي بدأ عليها هذا النشاط.
live_activity.relevance-scoreIntegerاختيارييخبر نظام iOS أي نشاط مباشر له أولوية أعلى من غيره. يقبل القيم من 1 إلى ما لا نهاية (يوصى بالقيم حتى 100).
live_activity.stale-dateIntegerاختياريالوقت (بالثواني) الذي يمثل التاريخ الذي يصبح فيه النشاط المباشر قديمًا أو غير محدث.
apns_priorityIntegerاختيارييتحكم في أولوية تسليم APNs لهذا الدفع الخاص بالنشاط المباشر. يقبل 10 (أولوية عالية، يتم تسليمها مع رأس apns-priority: 10 للعرض الفوري على شاشة مقفلة) أو 5 (أولوية منخفضة، يتم تسليمها مع apns-priority: 5 للحفاظ على بطارية الجهاز). أي قيمة أخرى تُعامل على أنها 5، بدون خطأ تحقق. كل دفع لنشاط مباشر يتم تعيينه افتراضيًا إلى الأولوية 5 بغض النظر عما إذا كان يحمل محتوى تنبيه (content/title) — قم بتعيين apns_priority: 10 بشكل صريح لطلب تسليم عالي الأولوية. انظر إشعارات الدفع الحساسة للوقت وأولوية التسليم أدناه.
contentStringاختيارينص التنبيه لهذا التحديث. الحالة الشائعة هي تحديث حالة المحتوى فقط، والذي لا يعين أيًا من content أو title أو subtitle ولا يحمل أي تنبيه على الإطلاق.
titleStringاختياريعنوان التنبيه لهذا التحديث. يؤدي تعيين content أو title أو subtitle إلى تشغيل تنبيه ويسمح بتشغيل ios_sound. مع عدم تعيين أي من الثلاثة، يظل التحديث صامتًا، وهو الإعداد الافتراضي لتحديثات حالة المحتوى فقط.
subtitleStringاختياريعنوان فرعي للتنبيه لهذا التحديث. له نفس دور تشغيل التنبيه مثل content/title أعلاه.
ios_soundStringاختيارياسم ملف الصوت في الحزمة الرئيسية للتطبيق. يركب داخل aps.alert إلى جانب content/title/subtitle، وليس aps.sound على المستوى الأعلى، والذي يتجاهله ActivityKit للأنشطة المباشرة، لذلك يتم تشغيله فقط عندما يقوم هذا التحديث أيضًا بتعيين واحد على الأقل من هؤلاء الثلاثة. يقوم iOS أيضًا بتحديد معدل تنبيهات الأنشطة المباشرة من تلقاء نفسه. لوحظ أن نفس الحمولة تصل مع صوت في تسليم واحد وبدونه في التسليم التالي، على كل من الجهاز والمحاكي.

ملاحظة: يؤثر relevance-score فقط على ترتيب العرض بين عدة أنشطة مباشرة نشطة على نفس الجهاز — لا يؤثر على إلحاح التسليم. استخدم apns_priority للتحكم في مدى إلحاح تسليم التحديث.

مثال على الطلب

Anchor link to
{
"request": {
"application": "XXXXX-XXXXX",
"auth": "SECRET_API_TOKEN",
"notifications": [
{
"apns_priority": 10,
"title": "Live Activity Update",
"live_activity": {
"event": "update",
"content-state": {
"status": "second 66",
"estimatedTime": "66 min",
"emoji": "👨‍"
},
"relevance-score": 60
},
"live_activity_id": "FIRST_LIVE_ACTIVITY"
}
]
}
}

مثال على الاستجابة

Anchor link to
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"XXXXX-XXXXXXXX-XXXXXXXX"
]
}
}

اقرأ هذا المقال لمعرفة المزيد حول العمل مع الأنشطة المباشرة باستخدام Pushwoosh iOS SDK.

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

Anchor link to

بشكل افتراضي، تقوم Apple بتسليم تحديثات الأنشطة المباشرة بأولوية منخفضة (apns-priority: 5) للحفاظ على البطارية. عندما يكون الجهاز مقفلاً، تتم معالجة تحديث منخفض الأولوية في الخلفية ويصبح مرئيًا فقط على شاشة القفل بمجرد أن يقوم المستخدم بفتح الجهاز. على جهاز مفتوح بالفعل، لا يزال يتم عرضه على الفور. استخدم معلمة apns_priority الموضحة أعلاه لطلب تسليم عالي الأولوية (apns-priority: 10) بحيث يتم عرض التحديث على شاشة القفل على الفور، دون الحاجة إلى فتح القفل.

حتى مع توفر apns_priority: 10، تضع Apple حدًا لعدد المرات التي يمكن استخدامها فيها.

أنشطة متعددة لكل جهاز

Anchor link to

يمكنك بدء أنشطة مباشرة متعددة على نفس الجهاز عن طريق استدعاء startLiveActivity عدة مرات بقيم live_activity_id مختلفة.

على سبيل المثال، إذا بدأت نشاطين: FIRST_LIVE_ACTIVITY مع filter: FILTER_NAME_1 و SECOND_LIVE_ACTIVITY مع filter: FILTER_NAME_2، فإن الجهاز الذي يطابق كلا الفلترين سيشغل كلا النشاطين في وقت واحد.

لتحديث أحدهما، قم بتمرير live_activity_id الخاص به إلى updateLiveActivity. يتم تسليم التحديث إلى جميع الأجهزة التي تم إنشاء هذا النشاط عليها. لا يتأثر النشاط الآخر.

تتحكم معلمة relevance-score في أولوية العرض عندما تكون هناك أنشطة مباشرة متعددة نشطة على نفس الجهاز. إذا كانت مساحة الشاشة محدودة أو تم تجميع الأنشطة، يتم عرض النشاط ذي القيمة الأعلى بأولوية أعلى.