# MAUI Dotnet

* [**মডিউল সোর্স**](https://github.com/Pushwoosh/pushwoosh-dotnet)
* [**নমুনা ডাউনলোড করুন**](https://github.com/Pushwoosh/pushwoosh-dotnet/tree/main/Sample)

### SDK ইন্টিগ্রেশন

**১.** Android এবং iOS উভয় প্রকল্পে **Pushwoosh.DotNet** Nuget প্যাকেজ যোগ করুন:

<img src="/maui-dotnet-README-1.webp" alt=""/>

**২.** প্রয়োজন হলে ট্রানজিটিভ Android নির্ভরতার জন্য লাইসেন্স গ্রহণ করুন:

<img src="/maui-dotnet-README-2.webp" alt=""/>

**৩.** [Firebase Console](https://console.firebase.google.com/u/0/) এ আপনার প্রকল্প কনফিগার করুন।

**৪.** আপনার Android প্ল্যাটফর্ম ডিরেক্টরির রুটে **google-services.json** যোগ করুন। এই ফাইলের জন্য **GoogleServicesJson** বিল্ড অ্যাকশন সেট করুন:

<img src="/maui-dotnet-README-3.webp" alt=""/>

**৫.** আপনার **MainActivity.cs** এ নেমস্পেস ঘোষণা করার আগে নিম্নলিখিত লাইনগুলি যোগ করুন (**XXXXX-XXXXX** এখানে আপনার Pushwoosh অ্যাপ্লিকেশন আইডি):

```csharp
[assembly: MetaData("com.pushwoosh.appid", Value = "XXXXX-XXXXX")]
[assembly: MetaData("com.pushwoosh.senderid", Value = "@string/fcm_sender_id")]
```

**৬.** আপনার **MainActivity.cs** এ `OnCreate()` মেথড ওভাররাইড করুন এবং `base.OnCreate(savedInstanceState);` এর পরে `PushManager.Init();` কল করুন।

```csharp
using Pushwoosh.Android;
...
public class MainActivity : MauiAppCompatActivity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        PushManager.Init();
    }
}
```

**৭.** আপনার Android প্রকল্পে, **Resources/values/strings.xml** ফাইলটি খুঁজুন বা তৈরি করুন। সেখানে আপনার প্রেরক আইডি স্ট্রিং যোগ করুন:

```txt
<string name="fcm_sender_id">YOUR_SENDER_ID</string>
```
**৮.** আপনার `AndroidManifest.xml` এ, নিম্নলিখিত যোগ করুন:

```xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_TYPE_API_TOKEN" />
```
> **গুরুত্বপূর্ণ:** নিশ্চিত করুন যে [ডিভাইস API টোকেন](/bn/developer/api-reference/api-access-token/#device-api-token) আপনার Pushwoosh কন্ট্রোল প্যানেলে সঠিক অ্যাপ্লিকেশনে অ্যাক্সেস আছে। [আরও জানুন](/bn/developer/api-reference/api-access-token/#edit-token)

**৯.** আপনার iOS প্রকল্পের **AppDelegate.cs** এ নিম্নলিখিত পরিবর্তনগুলি করুন:

`FinishedLaunching` মেথডের শুরুতে, নিম্নলিখিত লাইনটি রাখুন: \
`PushManager.Init();`

এই মেথডগুলো **AppDelegate** এ যোগ করুন (`MauiUIApplicationDelegate` ক্লাস ডিফল্টভাবে এই মেথডগুলো এক্সপোর্ট করে না, তাই আপনাকে এটি ম্যানুয়ালি করতে হবে):

```csharp
[Export("application:didReceiveRemoteNotification:fetchCompletionHandler:")]
    public void DidReceiveRemoteNotification(UIKit.UIApplication application, NSDictionary userInfo, Action<UIKit.UIBackgroundFetchResult> completionHandler)
    {
        PushManager.Instance.ReceivedRemoteNotification(userInfo);
    }

[Export("application:didRegisterForRemoteNotificationsWithDeviceToken:")]
    public void RegisteredForRemoteNotifications(UIKit.UIApplication application, NSData deviceToken)
    {
        PushManager.Instance.RegisteredForRemoteNotifications(deviceToken);
    }

[Export("application:didFailToRegisterForRemoteNotificationsWithError:")]
    public void FailedToRegisterForRemoteNotifications(UIKit.UIApplication application, NSError error)
    {
        PushManager.Instance.FailedToRegisterForRemoteNotifications(error);
    }
```

**১০.** **Info.plist** এ, **Pushwoosh\_APPID** এর মান আপনার Pushwoosh অ্যাপ্লিকেশন কোডে পরিবর্তন করুন। আপনি এটি আপনার কন্ট্রোল প্যানেলে খুঁজে পেতে পারেন:\


<img src="/maui-dotnet-README-4.webp" alt=""/>

**১১.** `Info.plist` এ, সেট করুন:
    - `Pushwoosh_API_TOKEN` কী [Pushwoosh ডিভাইস API টোকেন](/bn/developer/api-reference/api-access-token/#device-api-token) এ সেট করুন

> **গুরুত্বপূর্ণ:** নিশ্চিত করুন যে টোকেনটি আপনার Pushwoosh কন্ট্রোল প্যানেলে সঠিক অ্যাপে অ্যাক্সেস পেয়েছে। [আরও জানুন](/bn/developer/api-reference/api-access-token/#edit-token)


**১২.** **App.xaml.cs** এর ক্রস-প্ল্যাটফর্ম অংশে, `onStart` মেথডে রেজিস্ট্রেশন যোগ করুন:

```csharp
using PushwooshSDK.DotNet.Core;
...
public partial class App : Application
{
...
    protected override void OnStart()
    {
        base.OnStart();
	    PushManager.Instance.Register();
    }
}
```


> **উইন্ডোজ ব্যবহারকারীদের জন্য দ্রষ্টব্য:**
>বিল্ড করার সময় আপনি ফাইলের পাথের দৈর্ঘ্য সম্পর্কিত একটি সমস্যার সম্মুখীন হতে পারেন।
>এর কারণ হল Visual Studio দ্বারা ব্যবহৃত ডিরেক্টরিগুলির সম্মিলিত দৈর্ঘ্য এবং Pushwoosh SDK-এর মধ্যে থাকা ফাইলের পাথগুলি উইন্ডোজের ২৬০ অক্ষরের সর্বোচ্চ পাথ দৈর্ঘ্যের সীমাবদ্ধতা অতিক্রম করে।
>এই সমস্যাটি সমাধান করতে, উইন্ডোজ রেজিস্ট্রি-তে LongPathsEnabled সেটিংটি সক্রিয় করুন।

### আমাদের সাথে আপনার মতামত শেয়ার করুন

আপনার মতামত আমাদের একটি উন্নত অভিজ্ঞতা তৈরি করতে সাহায্য করে, তাই SDK ইন্টিগ্রেশন প্রক্রিয়ার সময় আপনার কোনো সমস্যা হলে আমরা আপনার কাছ থেকে শুনতে চাই। যদি আপনি কোনো অসুবিধার সম্মুখীন হন, অনুগ্রহ করে আমাদের সাথে আপনার মতামত শেয়ার করতে দ্বিধা করবেন না [এই ফর্মের মাধ্যমে](https://docs.google.com/forms/d/e/1FAIpQLSd\_0b8jwn-V\_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform)।