# iOS ইন্টারেক্টিভ পুশ তৈরি করুন

iOS 8 ইন্টারেক্টিভ নোটিফিকেশন চালু করেছে, যা ব্যবহারকারীদের সরাসরি নোটিফিকেশন ব্যানার থেকে অ্যাকশন নিতে দেয়। Pushwoosh এখন **iOS ক্যাটাগরি** অফার করে, যা আপনাকে Pushwoosh কন্ট্রোল প্যানেলের মধ্যে কাস্টম বাটন তৈরি করতে সক্ষম করে। [আরও জানুন](/bn/product/messaging-channels/push-notifications/advanced-push-features/ios-interactive-push)

## API

যখন আপনার অ্যাপ্লিকেশন [`registerDevice`](/bn/developer/api-reference/device-api/#registerdevice) কল করে, তখন Pushwoosh API একটি রেসপন্স পাঠায় যেখানে উপলব্ধ ক্যাটাগরিগুলির একটি তালিকা থাকে, তাদের আইডি এবং প্রতিটি বাটনের বিবরণ সহ, যা নিম্নরূপ:

```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "iosCategories": [
      {
        "categoryId": 65,
        "buttons": [
          {
            "id": 0,
            "label": "Rate",
            "type": "1",
            "startApplication": 1
          },
          {
            "id": 1,
            "label": "Later",
            "type": "0",
            "startApplication": 0
          }
        ]
      }
    ]
  }
}
```

এই ক্যাটাগরিগুলি এখন ডিভাইসে উপলব্ধ, তাই যখন একটি মেসেজ আসে এবং আপনার অ্যাপ্লিকেশন ফোরগ্রাউন্ডে চলছে না, তখন সেগুলি সঠিকভাবে প্রদর্শিত হতে পারে।

Pushwoosh Journey থেকে একটি ক্যাটাগরি সহ আপনার পুশ পাঠাতে, আপনার মেসেজ কম্পোজ করার সময় iOS প্ল্যাটফর্ম সেটিংসে কেবল এটি নির্বাচন করুন। যদি আপনি Pushwoosh API-এর মাধ্যমে দূর থেকে আপনার পুশ পাঠান, তাহলে [`createMessage`](/bn/developer/api-reference/messages-api/#createmessage) রিকোয়েস্টে আপনার `ios_category` প্যারামিটারটি সংশ্লিষ্ট ক্যাটাগরি আইডি মান সহ ব্যবহার করা উচিত:

```json
{
  "categoryId": 65  // Optional. String value. iOS8 category ID from Pushwoosh
}
```

যখন একটি ক্যাটাগরি আইডি সহ একটি পুশ মেসেজ আসে, Pushwoosh SDK সেই ক্যাটাগরিতে থাকা বাটনগুলির সেট সহ নোটিফিকেশনটি প্রদর্শন করে।

## Pushwoosh iOS SDK-তে বাটন এবং অ্যাকশন

অ্যাপ খোলার পর বিভিন্ন অ্যাকশন সম্পাদন করার জন্য, আপনার একটি কাস্টম `UNUserNotificationCenterDelegate` ইমপ্লিমেন্টেশন তৈরি করা উচিত এবং এর `didReceiveNotificationResponse` মেথডটি ওভাররাইড করা উচিত:

#### কাস্টম ডেলিগেট


```swift
class CustomDelegate: NSObject, UNUserNotificationCenterDelegate {
    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
        let identifier = response.actionIdentifier
        let category = response.notification.request.content.categoryIdentifier

        if category == "10212" {
            if identifier == "1" {
                // DO SOMETHING
            } else {
                // DO SOMETHING ELSE
            }
        }

        completionHandler()
    }
}
```

যেখানে `identifier` হল একটি বাটন আইডি, এবং `category` নোটিফিকেশন পেলোড থেকে প্রাপ্ত।

তারপর, এই ক্লাসের একটি ইনস্ট্যান্স তৈরি করুন এবং প্রক্সি মেথড ব্যবহার করে এটি Pushwoosh SDK-তে পাস করুন:

#### অ্যাপডেলিগেট

```swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    Pushwoosh.configure.registerForPushNotifications()

    let customDelegate = CustomDelegate()
    Pushwoosh.configure.addNotificationCenterDelegate(customDelegate)

    return true
}
```

<img src="/messaging-channels-ios-interactive-push-1.png" alt="নোটিফিকেশন ব্যানারে প্রদর্শিত কাস্টম অ্যাকশন বাটন সহ iOS ইন্টারেক্টিভ পুশ নোটিফিকেশন"/>