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

<Aside type="note">
لإعداد الشارات لإضافات Cordova أو React Native، يرجى الرجوع إلى الأدلة المقابلة:

* [شارات لـ Cordova](/ar/developer/pushwoosh-sdk/cross-platform-frameworks/cordova/setting-up-badges-for-cordova)
* [شارات لـ React Native](/ar/developer/pushwoosh-sdk/cross-platform-frameworks/react-native/setting-up-badges-for-react-native)
</Aside>

بدءًا من الإصدار 6.4.0 من Pushwoosh iOS SDK، تغيرت عملية إدارة وإعداد الشارات من خلال الإشعارات الفورية.

إذا كنت تستخدم سابقًا رقم الشارات للإشارة إلى عدد الإشعارات الفورية المستلمة في تطبيقك، فيجب عليك الترحيل إلى إصدار أحدث من iOS SDK (6.4.0 أو أحدث). سيتم دعم الإصدارات الأقدم حتى نهاية الربع الثاني من عام 2022.

## كيفية إعداد الشارات

لإعداد الشارات، اتبع الخطوات التالية:

1. أضف Notification Service Extension (File -> New -> Target...)

<img src="/shared-7.webp" alt=""/>

2. حدد "Notification Service Extension"

<img src="/ios-push-notifications-setting-up-badges-1.webp" alt="إضافة Notification Service Extension"/>

3. استبدل فئة `NotificationService` التي تم إنشاؤها بفئة فرعية من `PushwooshNotificationServiceExtension`. يتولى Pushwoosh عد الشارات، وحدث التسليم، وتنزيل المرفقات، والحل البديل لانتهاء المهلة نيابة عنك:

<Tabs>
<TabItem label="Swift">
```swift
import PushwooshFramework

class NotificationService: PushwooshNotificationServiceExtension {}
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
#import <PushwooshFramework/PushwooshFramework.h>

@interface NotificationService : PushwooshNotificationServiceExtension
@end

@implementation NotificationService
@end
```
</TabItem>
</Tabs>

4. أضف إمكانية App Groups إلى **كلا** الهدفين — التطبيق الرئيسي و Notification Service Extension — واستخدم نفس App Group لكل منهما.

5. أضف App Group ID إلى `info.plist` **للتطبيق الرئيسي**:

```
<key>PW_APP_GROUPS_NAME</key>
<string>group.com.example.demoapp_example</string>
```

<img src="/shared-12.webp" alt="Info.plist"/>

يرث الامتداد هذه القيمة من التطبيق المضيف، لذلك لا تحتاج إلى تكرارها في `info.plist` الخاص بالامتداد — أضفها هناك فقط لتجاوز قيمة المضيف.

إذا كنت تفضل عدم استخدام ملف **info.plist**، فقم بتوفير App Group في الكود عن طريق تجاوز `pushwooshAppGroupsName` في فئة NotificationServiceExtension الخاصة بك:

<Tabs>
<TabItem label="Swift">
```swift
override func pushwooshAppGroupsName() -> String? {
    "group.com.example.demoapp_example"
}
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
- (NSString *)pushwooshAppGroupsName {
    return @"group.com.example.demoapp_example";
}
```
</TabItem>
</Tabs>

<LinkCard title="مثال" href="https://github.com/Pushwoosh/pushwoosh-quickstart-ios/tree/main/badges/badges" />


## إرسال إشعار فوري مع شارات

إذا كنت ترغب في إرسال إشعار فوري مع شارات من لوحة تحكم Pushwoosh، فما عليك سوى إضافة قيمة الشارة المطلوبة إلى حقل نص **badges** كما هو موضح في الصورة أدناه:

<img src="/ios-push-notifications-setting-up-badges-5.webp" alt="قيمة الشارات"/>

<Aside type="note">
يمكنك استخدام تنسيقات القيمة التالية لإرسال الشارات بشكل صحيح: **+1، -1 أو 5.** إذا كنت ترغب في زيادة قيمة الشارة، استخدم علامة **"+"**، وإذا كنت ترغب في إنقاص الشارات، استخدم علامة **"-"**. يمكنك أيضًا تعيين الرقم الدقيق باستخدام على سبيل المثال **5** بدون علامة.
</Aside>

## شاركنا ملاحظاتك

تساعدنا ملاحظاتك في إنشاء تجربة أفضل، لذلك نود أن نسمع منك إذا كان لديك أي مشاكل أثناء عملية دمج SDK. إذا واجهت أي صعوبات، فلا تتردد في مشاركة أفكارك معنا [عبر هذا النموذج](https://docs.google.com/forms/d/e/1FAIpQLSd\_0b8jwn-V\_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform).