# تكامل الإشعارات الغنية في iOS

بدءًا من نظام التشغيل iOS 10، يمكنك إرفاق صورة ثابتة أو متحركة أو حتى مقطع فيديو بإشعارات الدفع. سيتم عرضها مباشرة في الإشعار عندما يقوم المستخدم بالضغط بقوة عليها.

تفعيل هذه الوظيفة بسيط جدًا، ويتضمن القليل جدًا من البرمجة. هيا بنا نبدأ!

## 1. إنشاء ملحق خدمة الإشعارات (Notification Service Extension)

أولاً، قم بإنشاء [ملحق خدمة الإشعارات (Notification Service Extension)](https://developer.apple.com/reference/usernotifications/unnotificationserviceextension). يقوم هذا الملحق بتنزيل المحتوى الذي سيتم عرضه للمستخدم.

أضف هدفًا جديدًا إلى مشروعك (File -> New -> Target) وأنشئ _Notification Service Extension_.

<img src="/ios-rich-notification-1.webp" alt="إنشاء ملحق خدمة الإشعارات"/>

<Aside type="caution">
 لملحق خدمة الإشعارات (Notification Service Extension) معرف تطبيق Apple وملف تعريف توفير منفصلان!

لاحظ أن ملحق الإشعارات له Bundle Id خاص به (مثال: `com.pushwoosh.example.NotificationService`) بالإضافة إلى **معرف تطبيق Apple (Apple App ID)** و**ملف تعريف التوفير (Provisioning profile)** الخاصين به، واللذين يجب إعدادهما بشكل منفصل في بوابة مطوري Apple.
</Aside>

## 2. كود ملحق خدمة الإشعارات (Notification Service Extension)

يقوم الكود بتنزيل المرفق واستدعاء معالج محتوى الإشعار.\
فقط انسخ والصق هذا الكود في ملحقك.

<Tabs syncKey="code-example">
<TabItem label="Swift">
```swift
import UserNotifications
import PushwooshFramework

class NotificationService: UNNotificationServiceExtension {

    var contentHandler: ((UNNotificationContent) -> Void)?
    var bestAttemptContent: UNMutableNotificationContent?

    override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
        PWNotificationExtensionManager.shared().handle(request, contentHandler: contentHandler)
    }
}
```
</TabItem>

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

@interface NotificationService : UNNotificationServiceExtension

@end

@implementation NotificationService

- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
    [[PWNotificationExtensionManager sharedManager] handleNotificationRequest:request contentHandler:contentHandler];
}

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

## 3. السماح بعناوين URL للمرفقات غير الآمنة

ملحق خدمة الإشعارات (Notification Service Extension) هو ملف ثنائي منفصل و**له ملف Info.plist خاص به**.\
أضف **App Transport Security Settings** مع تعيين علامة **Allow Arbitrary Loads** إلى `true` في **ملف Info.plist الخاص بالملحق**.

**Info.plist**:
```xml
<key>NSAppTransportSecurity</key>
<dict>
	<key>NSAllowsArbitraryLoads</key>
	<true/>
</dict>
```

## 4. إرسال إشعار غني

لإرسال إشعار غني، ما عليك سوى تحديد عنوان URL للملف في حقل **BANNER URL**.

<img src="/ios-rich-notification-2.webp" alt="حقل BANNER URL"/>

ووش! اضغط بقوة على الإشعار وبذلك تكون قد انتهيت!

<video src="/ios-rich-notification-3.webm" title="مثال" autoplay loop muted playsinline />

<Aside type="tip">
تعرف على كيفية [جعل مقاطع الفيديو في إشعارات الدفع الغنية لنظام iOS تعمل تلقائيًا بالضغط بقوة](/ar/developer/pushwoosh-sdk/ios-sdk/customizing-ios-sdk/#autoplay-a-video-sent-in-a-rich-notification-with-force-touch)
</Aside>

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

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