Перейти к содержанию

MAUI Dotnet

Интеграция SDK

Anchor link to

1. Добавьте Nuget-пакет Pushwoosh.DotNet в проекты для Android и iOS:

2. Примите лицензии для транзитивных зависимостей Android, если это потребуется:

3. Настройте ваш проект в Firebase Console.

4. Добавьте файл google-services.json в корневой каталог вашей платформы Android. Установите для этого файла действие сборки (build action) GoogleServicesJson:

5. Добавьте следующие строки перед объявлением пространства имен в вашем файле MainActivity.cs (XXXXX-XXXXX — это ID вашего приложения Pushwoosh):

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

6. В вашем файле MainActivity.cs переопределите метод OnCreate() и вызовите PushManager.Init(); после base.OnCreate(savedInstanceState);

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

7. В вашем Android-проекте найдите или создайте файл Resources/values/strings.xml. Добавьте в него строку с вашим Sender ID:

<string name="fcm_sender_id">YOUR_SENDER_ID</string>

8. В ваш файл AndroidManifest.xml добавьте следующее:

<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_TYPE_API_TOKEN" />

Важно: Убедитесь, что Device API token имеет доступ к нужному приложению в вашей панели управления Pushwoosh. Узнать больше

9. Внесите следующие изменения в файл AppDelegate.cs вашего iOS-проекта:

В начало метода FinishedLaunching добавьте следующую строку:
PushManager.Init();

Добавьте эти методы в AppDelegate (класс MauiUIApplicationDelegate не экспортирует эти методы по умолчанию, поэтому их нужно добавить вручную):

[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. Его можно найти в вашей панели управления:\

11. В Info.plist установите:

Важно: Убедитесь, что токен имеет доступ к нужному приложению в вашей панели управления Pushwoosh. Узнать больше

12. В кроссплатформенной части файла App.xaml.cs добавьте регистрацию в метод onStart:

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

Примечание для пользователей Windows: При сборке вы можете столкнуться с проблемой, связанной с длиной пути к файлу. Это связано с тем, что суммарная длина каталогов, используемых Visual Studio, и путей к файлам в Pushwoosh SDK превышает ограничение максимальной длины пути в Windows, составляющее 260 символов. Чтобы решить эту проблему, включите параметр LongPathsEnabled в реестре Windows.

Поделитесь с нами своим мнением

Anchor link to

Ваши отзывы помогают нам улучшать продукт, поэтому мы будем рады, если вы сообщите нам о любых проблемах, возникших в процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, поделитесь с нами своими мыслями через эту форму.