콘텐츠로 건너뛰기

MAUI Dotnet Geozones 연동

Geozones를 사용하면 Pushwoosh가 디바이스 위치를 기반으로 푸시 알림을 보낼 수 있습니다. 시작하기 전에 요구 사항을 포함하여 MAUI Dotnet에 설명된 대로 기본 SDK를 연동하세요. 그런 다음 다음 단계를 따르세요:

  1. 솔루션에 Pushwoosh.DotNet.Geozones NuGet 패키지를 추가합니다. Pushwoosh.DotNet과 함께 업데이트하세요. Geozones 2.0.x는 Pushwoosh.DotNet 2.1.0 이상과 함께 사용하면 iOS에서 실행 시 충돌하므로, 이 조합에서는 빌드가 error PW0002로 중단됩니다.
  1. 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();
}
  1. 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();
}
  1. 앱의 요구 사항에 따라 위치 권한을 추가합니다.

Privacy - Location When In Use Usage Description 권한은 항상 추가해야 합니다.

5. 그런 다음 StartLocationTracking() 메서드를 호출하여 위치 추적을 시작합니다.

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