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

> توثيق Apple:
> 
> * [حول الأنشطة المباشرة](https://developer.apple.com/design/human-interface-guidelines/live-activities)
> * [تحديث وإنهاء الأنشطة المباشرة باستخدام إشعارات الدفع من ActivityKit](https://developer.apple.com/documentation/activitykit/updating-and-ending-your-live-activity-with-activitykit-push-notifications)



## startLiveActivity



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

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

### نص الطلب

| المعلمة | النوع | مطلوب/اختياري | الوصف |
|---------------|--------|-------------------|-----------------------------------------------------------------------------|
| application | String | مطلوب | [رمز تطبيق Pushwoosh](/ar/developer/api-reference/api-identifiers/#application-code) |
| auth | String | مطلوب | [رمز الوصول إلى واجهة برمجة التطبيقات (API access token)](/ar/developer/api-reference/api-identifiers/#api-access-token) من لوحة تحكم Pushwoosh. |
| notifications | Array | مطلوب | مصفوفة JSON لمعلمات الرسالة. انظر التفاصيل في جدول الإشعارات أدناه. |

#### الإشعارات
المعلمات المستخدمة في مصفوفة `notifications`:

| المعلمة | النوع | مطلوب/اختياري | الوصف |
|------------------|------------------|-------------------|-----------------------------------------------------------------------------|
| content | String | مطلوب | محتوى احتياطي للأجهزة التي تعمل بإصدارات iOS أقل من 16.1 والتي لا تدعم الأنشطة المباشرة. على iOS 16.1+ (مع دعم الأنشطة المباشرة)، يتم الحصول على المحتوى من حقل `live_activity`. |
| title | String | اختياري | عنوان رسالة الإشعار. |
| live_activity | Object | مطلوب | بيانات النشاط المباشر لإنشاء نشاط مباشر في iOS. |
| live_activity.content-state | Object | مطلوب | محتوى إشعار النشاط المباشر. |
| live_activity.attributes-type | String | مطلوب | نوع السمات المستخدمة في النشاط المباشر. |
| live_activity.attributes | Object | مطلوب | سمات النشاط المباشر. |
| live_activity_id | String | مطلوب | معرف فريد للنشاط المباشر. يستخدم لاستهداف هذا النشاط عند استدعاء `updateLiveActivity`. يجب أن يكون فريدًا لكل جلسة نشاط. |
| filter | String | اختياري | اسم مرشح Pushwoosh (شريحة). انظر [اسم الشريحة / المرشح](/ar/developer/api-reference/api-identifiers/#segment--filter-name). سيتم بدء النشاط المباشر على جميع الأجهزة التي تطابق هذا المرشح. |
| devices | Array of Strings | اختياري | قائمة من [رموز الأجهزة](/ar/developer/api-reference/api-identifiers/#push-token). سيتم بدء النشاط المباشر فقط على الأجهزة المحددة. |



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

<Tabs>
<TabItem label="مع مرشح">
```json
{
  "request": {
    "application": "XXXXX-XXXXX",
    "auth": "SECRET_API_TOKEN",
    "notifications": [
      {
        "content": "Your order is being prepared",
        "title": "Food Delivery",
        "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"
      }
    ]
  }
}
```
</TabItem>
<TabItem label="مع الأجهزة">
```json
{
  "request": {
    "application": "XXXXX-XXXXX",
    "auth": "SECRET_API_TOKEN",
    "notifications": [
      {
        "content": "Your order is being prepared",
        "title": "Food Delivery",
        "live_activity": {
          "event": "start",
          "title": "Order status",
          "content-state": {
            "status": "Third",
            "estimatedTime": "37 min",
            "emoji": "👨‍🍳"
          },
          "attributes-type": "FoodDeliveryAttributes",
          "attributes": {}
        },
        "live_activity_id": "SECOND_LIVE_ACTIVITY",
        "devices": ["first_third", "second_device"]
      }
    ]
  }
}
```
</TabItem>
</Tabs>

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

```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "Messages": [
      "XXXXX-XXXXXXXX-XXXXXXXX"
    ]
  }
}
```
> **ملاحظة:**
> 
> اقرأ [هذا المقال](/ar/developer/pushwoosh-sdk/ios-sdk/ios-live-activities) لمعرفة المزيد حول العمل مع الأنشطة المباشرة باستخدام Pushwoosh iOS SDK.


## updateLiveActivity


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

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

### نص الطلب

| المعلمة | النوع | مطلوب/اختياري | الوصف |
|----------------|--------|-------------------|------------------------------------------------------------------------|
| auth | String | مطلوب | [رمز الوصول إلى واجهة برمجة التطبيقات (API access token)](/ar/developer/api-reference/api-identifiers/#api-access-token) من لوحة تحكم Pushwoosh. |
| application | String | مطلوب | [رمز تطبيق Pushwoosh](/ar/developer/api-reference/api-identifiers/#application-code) |
| notifications | Array | مطلوب | مصفوفة JSON لمعلمات الرسالة. انظر التفاصيل في جدول الإشعارات أدناه. |

#### الإشعارات

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

| المعلمة | النوع | مطلوب/اختياري | الوصف |
|------------------|---------|-------------------|-----------------------------------------------------------------------------|
| live_activity | Object | مطلوب | بيانات النشاط المباشر لتحديث النشاط المباشر في iOS. |
| live_activity.event | String | مطلوب | يحدد نوع الحدث. استخدم `"update"` لتحديث النشاط المباشر أو `"end"` لإغلاقه. |
| live_activity.content-state | Object | مطلوب | كائن يحتوي على أزواج مفتاح-قيمة يستخدم لتمرير البيانات إلى النشاط المباشر لتحديث محتواه. |
| live_activity.dismissal-date | Integer | اختياري | الوقت (بالثواني) الذي يجب أن ينتهي فيه النشاط المباشر. |
| live_activity_id | String | مطلوب | المعرف الفريد للنشاط المباشر المراد تحديثه. يجب أن يتطابق مع `live_activity_id` المستخدم في **startLiveActivity**. سيتم تسليم التحديث إلى جميع الأجهزة التي بدأ عليها هذا النشاط. |
| live_activity.relevance-score | Integer | اختياري | يخبر نظام iOS أي نشاط مباشر له أولوية أعلى من غيره. يقبل القيم من 1 إلى ما لا نهاية (يوصى بالقيم حتى 100). |
| live_activity.stale-date | Integer | اختياري | الوقت (بالثواني) الذي يمثل التاريخ الذي يصبح فيه النشاط المباشر قديمًا أو غير محدث. |


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

```json

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

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

```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "Messages": [
      "XXXXX-XXXXXXXX-XXXXXXXX"
    ]
  }
}
```

> [اقرأ هذا المقال](/ar/developer/pushwoosh-sdk/ios-sdk/ios-live-activities/) لمعرفة المزيد حول العمل مع الأنشطة المباشرة باستخدام Pushwoosh iOS SDK.


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

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

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

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

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