# টেস্ট পুশ ডিভাইস যোগ করুন

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

একটি টেস্ট ডিভাইস যোগ করতে:
1. আপনার Pushwoosh অ্যাকাউন্টে **Test devices** বিভাগে যান।

<img src="/test-your-integration-test-devices-1.webp" alt="Pushwoosh অ্যাকাউন্টে টেস্ট ডিভাইস বিভাগ"/>

2. উপরের ডানদিকের কোণায় **Add Device** ড্রপডাউন বোতামে ক্লিক করুন এবং **Push** নির্বাচন করুন।

<img src="/test-your-integration-test-devices-2.webp" alt="টেস্ট ডিভাইস বিভাগে Push অপশন সহ Add Device ড্রপডাউন বোতাম"/>

আপনি দুটি পদ্ধতির মধ্যে একটি ব্যবহার করে একটি পুশ টেস্ট ডিভাইস যোগ করতে পারেন: QR কোড দিয়ে অটো-কনফিগারেশন বা ম্যানুয়াল কনফিগারেশন।

## স্বয়ংক্রিয়ভাবে টেস্ট ডিভাইস যোগ করা

এই পদ্ধতিটি শুধুমাত্র iOS এবং Android ডিভাইসের জন্য উপযুক্ত।

1. **Test Devices** বিভাগে, **Add Device**-এ ক্লিক করুন এবং **Push** নির্বাচন করুন।
2. পপআপে প্রদর্শিত QR কোডটি স্ক্যান করুন। এটি একটি ডিপ লিঙ্ক তৈরি করবে যা Pushwoosh SDK আপনার ডিভাইসকে স্বয়ংক্রিয়ভাবে একটি টেস্ট ডিভাইস হিসাবে রেজিস্টার করতে পার্স করতে পারে।
3. অ্যাপ কনফিগারেশনে ডিপ লিঙ্কটি যোগ করুন:
* **Android-এর জন্য**: এটি `AndroidManifest.xml` ফাইলে যোগ করুন।
* **iOS-এর জন্য**: এটি `Info.plist` ফাইলে যোগ করুন।

আরও বিস্তারিত জানতে, [ইমপ্লিমেন্টেশন বিভাগে](/bn/developer/first-steps/test-your-integration/test-devices#implementation) Android এবং iOS-এর জন্য নির্দেশাবলী অনুসরণ করুন।

<Aside type="tip" title="QR রিডারদের জন্য টিপ">
নিশ্চিত করুন যে স্ক্যান করা লিঙ্কটি QR রিডারের ওয়েবভিউতে না খুলে নেটিভ ব্রাউজারে খোলে। অনেক QR রিডারের এই উদ্দেশ্যে একটি "Open in Browser" বোতাম থাকে।
</Aside>


## ম্যানুয়ালি টেস্ট ডিভাইস যোগ করা

আপনি যদি ম্যানুয়ালি একটি টেস্ট ডিভাইস রেজিস্টার করতে চান, তাহলে এই পদক্ষেপগুলি অনুসরণ করুন:

1. একটি সফল [`/registerDevice`](/bn/developer/api-reference/device-api#registerdevice) API কল থেকে ডিভাইসের **হার্ডওয়্যার আইডি (HWID)** সংগ্রহ করুন।
2. প্রয়োজনীয় ফিল্ডগুলি পূরণ করুন:
   * **ডিভাইসের নাম**: টেস্ট ডিভাইসের জন্য একটি বর্ণনামূলক নাম (যেমন, "John's Android")।
   * **ডিভাইস HWID**: ডিভাইসের অনন্য হার্ডওয়্যার আইডি।
   * **ডিভাইসের প্রকার**: প্ল্যাটফর্ম নির্বাচন করুন (যেমন, iOS, Android, Web)।
   * **বিবরণ (ঐচ্ছিক)**: রেফারেন্সের জন্য ডিভাইস সম্পর্কে কোনো নোট বা বিবরণ যোগ করুন।
3. টেস্ট ডিভাইসটি রেজিস্টার করতে **Save**-এ ক্লিক করুন।

একবার রেজিস্টার হয়ে গেলে, টেস্ট ডিভাইসটি **Test Devices** বিভাগে উপলব্ধ হবে।


## ইমপ্লিমেন্টেশন

### Android

1. আপনার অ্যাপ্লিকেশনের সাথে [Pushwoosh SDK ইন্টিগ্রেট করুন](/bn/developer/pushwoosh-sdk/android-sdk/firebase-integration/integrate-pushwoosh-android-sdk/)।

2. আপনার _AndroidManifest.xml_-এ **DeepLinkActivity** যোগ করুন:

```txt
<activity
          android:name="com.pushwoosh.DeepLinkActivity"
          android:theme="@android:style/Theme.Translucent.NoTitleBar" >
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data android:scheme="pushwoosh-YOUR_PUSHWOOSH_APP_ID" />
  </intent-filter>
</activity>
```

উপরের xml-এ _YOUR\_PUSHWOOSH\_APP\_ID_ আপনার Pushwoosh অ্যাপ আইডি দিয়ে প্রতিস্থাপন করতে ভুলবেন না।\
উদাহরণ: _\<data android:scheme="pushwoosh-ABCDE-EDCBA" />_

3. পুশ নোটিফিকেশনের জন্য সাবস্ক্রাইব করতে অ্যাপ্লিকেশনটি চালু করুন।

4. যেকোনো উপযুক্ত QR কোড স্ক্যানার অ্যাপ* ব্যবহার করে **Test Devices** ফর্মে QR কোডটি স্ক্যান করুন। একটি টোস্ট মেসেজ দেখা যাবে যা টেস্ট ডিভাইস রেজিস্ট্রেশনের স্ট্যাটাস নির্দেশ করবে।

\* বেশিরভাগ QR কোড স্ক্যানিং অ্যাপ এই ধরনের ডিপ লিঙ্কগুলি সঠিকভাবে পরিচালনা করে, এখানে তাদের মধ্যে কয়েকটি দেওয়া হল:

* [QR & Barcode Scanner, Gamma Play](https://play.google.com/store/apps/details?id=com.gamma.scan)
* [QR & Barcode Scanner, Maker, AppSourceHub](https://play.google.com/store/apps/details?id=qrcode.scanner.qrmaker)

### iOS

1. আপনার অ্যাপ্লিকেশনের সাথে [Pushwoosh SDK ইন্টিগ্রেট করুন](/bn/developer/pushwoosh-sdk/ios-sdk/setting-up-pushwoosh-ios-sdk/)।

2. _Info.plist_ ফাইলে _pushwoosh-YOUR\_PUSHWOOSH\_APP\_ID_ URL স্কিম যোগ করুন:

```xml
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleTypeRole</key>
    <string>Editor</string>
    <key>CFBundleURLName</key>
    <string>com.pushwoosh.scheme</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>pushwoosh-YOUR_PUSHWOOSH_APP_ID</string>
    </array>
  </dict>
</array>
```

উপরের XML-এ _YOUR\_PUSHWOOSH\_APP\_ID_ আপনার Pushwoosh অ্যাপ আইডি দিয়ে প্রতিস্থাপন করতে ভুলবেন না।\
উদাহরণ: _pushwoosh-ABCDE-EDCBA_

<Aside type="caution">
 **যদি আপনার প্রজেক্ট শুধুমাত্র SwiftUI দিয়ে তৈরি হয়, তাহলে আপনাকে একটি SceneDelegate যোগ করতে হবে**

SwiftUI অ্যাপের লাইফসাইকেল UIKit থেকে ভিন্নভাবে পরিচালনা করে। কিছু সিস্টেম ইভেন্ট যেমন পুশ নোটিফিকেশনের জন্য একটি টেস্ট ডিভাইস রেজিস্টার করা বা ডিপ লিঙ্ক হ্যান্ডেল করা সঠিকভাবে কাজ করে তা নিশ্চিত করতে, আপনাকে স্পষ্টভাবে একটি SceneDelegate যোগ এবং রেজিস্টার করতে হবে।

এটি ছাড়া, এই ইভেন্টগুলি সঠিকভাবে ট্রিগার নাও হতে পারে, এবং পুশ রেজিস্ট্রেশন ব্যর্থ হতে পারে।

আপনি যদি SwiftUI ব্যবহার না করেন, তাহলে আপনি এই ধাপটি এড়িয়ে সরাসরি **ধাপ ৩**-এ যেতে পারেন।
</Aside>

**Info.plist**
<details>
  <summary>আপনার `Info.plist`-এ `UIApplicationSceneManifest` যোগ করুন।</summary>

  ```xml
	<key>UIApplicationSceneManifest</key>
	<dict>
		<key>UIApplicationSupportsMultipleScenes</key>
		<true/>
		<key>UISceneConfigurations</key>
		<dict>
			<key>UIWindowSceneSessionRoleApplication</key>
			<array>
				<dict>
					<key>UISceneConfigurationName</key>
					<string></string>
					<key>UISceneDelegateClassName</key>
					<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
				</dict>
			</array>
		</dict>
	</dict>
  ```

</details>

**SceneDelegate**
<details>
  <summary>নিচের উদাহরণে দেখানো `SceneDelegate` কোডটি যোগ করুন।</summary>

  ```swift
import SwiftUI

@main
struct DemoApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

class SceneDelegate: NSObject, UIWindowSceneDelegate {
    
    var window: UIWindow?

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let _ = (scene as? UIWindowScene) else { return }
    }
}

class AppDelegate: NSObject, UIApplicationDelegate, PWMessagingDelegate {
    
    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        let sceneConfig: UISceneConfiguration = UISceneConfiguration(name: nil, sessionRole: connectingSceneSession.role)
        sceneConfig.delegateClass = SceneDelegate.self
        return sceneConfig
    }

}
  ```

</details>

3. পুশ নোটিফিকেশনের জন্য সাবস্ক্রাইব করতে অ্যাপ্লিকেশনটি চালু করুন।

4. যেকোনো উপযুক্ত QR কোড স্ক্যানার ব্যবহার করে **Test Devices** ফর্মে QR কোডটি স্ক্যান করুন।