Интеграция Geozones в MAUI .NET
Geozones позволяют Pushwoosh отправлять push-уведомления в зависимости от местоположения устройства. Перед началом интегрируйте базовый SDK, как описано в разделе MAUI Dotnet, включая его требования. Затем выполните следующие шаги:
- Добавьте NuGet-пакет Pushwoosh.DotNet.Geozones в ваше решение. Обновляйте его вместе с
Pushwoosh.DotNet. Geozones 2.0.x аварийно завершается при запуске на iOS вместе сPushwoosh.DotNet2.1.0 или новее, поэтому при такой комбинации сборка останавливается сerror PW0002.

- Интеграция для Android
В вашем проекте для Android найдите файл MainApplication.cs и вызовите LocationManager.Init() в OnCreate() сразу после PushManager.Init(), до base.OnCreate(). base.OnCreate() собирает приложение MAUI, и страница, которая использует LocationManager.Instance во время своего создания, получит null, если Init() выполнится позже:
using Android.App;using Android.Runtime;using Pushwoosh.Android;using PushwooshSDK.DotNet.Geozones.Android;
...
[Application]public class MainApplication : MauiApplication{ public MainApplication(IntPtr handle, JniHandleOwnership ownership) : base(handle, ownership) { }
public override void OnCreate() { PushManager.Init(); LocationManager.Init(); base.OnCreate(); }
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();}- Интеграция для iOS
Для вашего проекта для iOS откройте файл AppDelegate.cs и вызовите метод LocationManager.Init() в методе FinishedLaunching():
using Pushwoosh.iOS;using PushwooshSDK.DotNet.Geozones.iOS;using UIKit;
...
[Register("AppDelegate")]public class AppDelegate : MauiUIApplicationDelegate{ public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { PushManager.Init(); LocationManager.Init(); return base.FinishedLaunching(application, launchOptions); }
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();}- Добавьте разрешения на использование геолокации в соответствии с требованиями вашего приложения.
Разрешение Privacy - Location When In Use Usage Description должно быть добавлено всегда.

5. Затем запустите отслеживание геолокации, вызвав метод StartLocationTracking().
using PushwooshSDK.DotNet.Geozones;
...
LocationManager.Instance.StartLocationTracking();