MAUI Dotnet Geozones 연동
Geozones를 사용하면 Pushwoosh가 디바이스 위치를 기반으로 푸시 알림을 보낼 수 있습니다. 시작하기 전에 요구 사항을 포함하여 MAUI Dotnet에 설명된 대로 기본 SDK를 연동하세요. 그런 다음 다음 단계를 따르세요:
- 솔루션에 Pushwoosh.DotNet.Geozones NuGet 패키지를 추가합니다.
Pushwoosh.DotNet과 함께 업데이트하세요. Geozones 2.0.x는Pushwoosh.DotNet2.1.0 이상과 함께 사용하면 iOS에서 실행 시 충돌하므로, 이 조합에서는 빌드가error PW0002로 중단됩니다.

- Android 연동
Android 프로젝트에서 MainApplication.cs 파일을 찾아 OnCreate()에서 PushManager.Init() 바로 다음, base.OnCreate() 이전에 LocationManager.Init()를 호출합니다. base.OnCreate()는 MAUI 앱을 빌드하며, Init()가 나중에 실행되면 생성 중에 LocationManager.Instance를 사용하는 페이지는 이를 null로 받습니다:
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 파일을 열고 FinishedLaunching() 메서드에서 LocationManager.Init()를 호출합니다:
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();