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

Интеграция Geozones в MAUI .NET

Geozones позволяют Pushwoosh отправлять push-уведомления в зависимости от местоположения устройства. Перед началом интегрируйте базовый SDK, как описано в разделе MAUI Dotnet, включая его требования. Затем выполните следующие шаги:

  1. Добавьте NuGet-пакет Pushwoosh.DotNet.Geozones в ваше решение. Обновляйте его вместе с Pushwoosh.DotNet. Geozones 2.0.x аварийно завершается при запуске на iOS вместе с Pushwoosh.DotNet 2.1.0 или новее, поэтому при такой комбинации сборка останавливается с error PW0002.
  1. Интеграция для 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();
}
  1. Интеграция для 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();
}
  1. Добавьте разрешения на использование геолокации в соответствии с требованиями вашего приложения.

Разрешение Privacy - Location When In Use Usage Description должно быть добавлено всегда.

5. Затем запустите отслеживание геолокации, вызвав метод StartLocationTracking().

using PushwooshSDK.DotNet.Geozones;
...
LocationManager.Instance.StartLocationTracking();