ข้ามไปยังเนื้อหา

การผสานรวม MAUI Dotnet Geozones

Geozones ช่วยให้ Pushwoosh ส่ง push notification ตามตำแหน่งของอุปกรณ์ได้ ก่อนเริ่มต้น ให้ผสานรวม SDK พื้นฐานตามที่อธิบายไว้ใน MAUI Dotnet รวมถึงข้อกำหนดของ SDK จากนั้นทำตามขั้นตอนเหล่านี้:

  1. เพิ่ม Pushwoosh.DotNet.Geozones NuGet Package ไปยังโซลูชันของคุณ อัปเดตแพ็กเกจนี้พร้อมกับ 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();