MAUI Dotnet
Интеграция SDK
Section titled “Интеграция SDK”1. Добавьте Nuget-пакет Wavesend.DotNet в проекты для Android и iOS:

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

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

5. Добавьте следующие строки перед объявлением пространства имен в вашем файле MainActivity.cs (XXXXX-XXXXX — это ID вашего приложения Wavesend):
[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 имеет доступ к нужному приложению в вашем Wavesend Control Panel. Узнать больше
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 измените значение Wavesend_APPID на ваш Application code Wavesend. Его можно найти в вашем Control Panel:

11. В Info.plist установите:
- ключ
Wavesend_API_TOKENна Wavesend Device API Token
Важно: Убедитесь, что токен имеет доступ к нужному приложению в вашем Wavesend Control Panel. Узнать больше
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, и путей к файлам в SDK Wavesend превышает ограничение максимальной длины пути в Windows в 260 символов. Чтобы решить эту проблему, включите параметр LongPathsEnabled в реестре Windows.
Поделитесь с нами своим мнением
Section titled “Поделитесь с нами своим мнением”Ваши отзывы помогают нам делать наш продукт лучше, поэтому мы будем рады, если вы расскажете нам о любых проблемах, возникших в процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, поделитесь своими мыслями с нами, заполнив эту форму.