# MAUI Dotnet

* [**मॉड्यूल स्रोत**](https://github.com/Pushwoosh/pushwoosh-dotnet)
* [**सैंपल डाउनलोड करें**](https://github.com/Pushwoosh/pushwoosh-dotnet/tree/main/Sample)

### SDK इंटीग्रेशन

**1.** Android और iOS दोनों प्रोजेक्ट्स में **Pushwoosh.DotNet** Nuget पैकेज जोड़ें:

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

**2.** यदि आवश्यक हो तो ट्रांजिटिव Android डिपेंडेंसी के लिए लाइसेंस स्वीकार करें:

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

**3.** अपने प्रोजेक्ट को [Firebase Console](https://console.firebase.google.com/u/0/) में कॉन्फ़िगर करें।

**4.** अपनी Android प्लेटफ़ॉर्म डायरेक्टरी के रूट में **google-services.json** जोड़ें। इस फ़ाइल के लिए **GoogleServicesJson** बिल्ड एक्शन सेट करें:

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

**5.** अपनी **MainActivity.cs** में नेमस्पेस घोषित करने से पहले निम्नलिखित लाइनें जोड़ें (**XXXXX-XXXXX** यहाँ आपकी Pushwoosh एप्लिकेशन आईडी है):

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

**6.** अपनी **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();
    }
}
```

**7.** अपने Android प्रोजेक्ट में, **Resources/values/strings.xml** फ़ाइल ढूंढें या इसे बनाएं। वहां अपनी सेंडर आईडी स्ट्रिंग जोड़ें:

```txt
<string name="fcm_sender_id">YOUR_SENDER_ID</string>
```
**8.** अपने `AndroidManifest.xml` में, निम्नलिखित जोड़ें:

```xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_TYPE_API_TOKEN" />
```
> **महत्वपूर्ण:** सुनिश्चित करें कि [डिवाइस एपीआई टोकन](/hi/developer/api-reference/api-access-token/#device-api-token) के पास आपके Pushwoosh कंट्रोल पैनल में सही एप्लिकेशन तक पहुंच है। [और जानें](/hi/developer/api-reference/api-access-token/#edit-token)

**9.** अपने 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);
    }
```

**10.** **Info.plist** में, **Pushwoosh\_APPID** मान को अपने Pushwoosh एप्लिकेशन कोड में बदलें। आप इसे अपने कंट्रोल पैनल में पा सकते हैं:\


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

**11.** `Info.plist` में, सेट करें:
    - `Pushwoosh_API_TOKEN` की को [Pushwoosh डिवाइस एपीआई टोकन](/hi/developer/api-reference/api-access-token/#device-api-token) पर सेट करें

> **महत्वपूर्ण:** सुनिश्चित करें कि टोकन को आपके Pushwoosh कंट्रोल पैनल में सही ऐप तक पहुंच प्रदान की गई है। [और जानें](/hi/developer/api-reference/api-access-token/#edit-token)


**12.** **App.xaml.cs** के क्रॉस-प्लेटफ़ॉर्म हिस्से में, `onStart` मेथड में रजिस्ट्रेशन जोड़ें:

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


> **विंडोज उपयोगकर्ताओं के लिए ध्यान दें:**
>बिल्ड करते समय आपको फ़ाइल पाथ की लंबाई से संबंधित समस्या का सामना करना पड़ सकता है।
>यह विजुअल स्टूडियो द्वारा उपयोग की जाने वाली डायरेक्टरी की संयुक्त लंबाई और Pushwoosh SDK के भीतर फ़ाइल पाथ के विंडोज की 260 वर्णों की अधिकतम पाथ लंबाई सीमा से अधिक होने के कारण है।
>इस समस्या को हल करने के लिए, विंडोज रजिस्ट्री में LongPathsEnabled सेटिंग को सक्षम करें।

### अपनी प्रतिक्रिया हमारे साथ साझा करें

आपकी प्रतिक्रिया हमें एक बेहतर अनुभव बनाने में मदद करती है, इसलिए यदि आपको SDK इंटीग्रेशन प्रक्रिया के दौरान कोई समस्या आती है तो हम आपसे सुनना पसंद करेंगे। यदि आपको कोई कठिनाई आती है, तो कृपया [इस फॉर्म के माध्यम से](https://docs.google.com/forms/d/e/1FAIpQLSd\_0b8jwn-V\_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform) अपने विचार हमारे साथ साझा करने में संकोच न करें।