การผสานรวม MAUI Dotnet Geozones
Geozones ช่วยให้ Pushwoosh ส่ง push notification ตามตำแหน่งของอุปกรณ์ได้ ก่อนเริ่มต้น ให้ผสานรวม SDK พื้นฐานตามที่อธิบายไว้ใน MAUI Dotnet รวมถึงข้อกำหนดของ SDK จากนั้นทำตามขั้นตอนเหล่านี้:
- เพิ่ม Pushwoosh.DotNet.Geozones NuGet Package ไปยังโซลูชันของคุณ อัปเดตแพ็กเกจนี้พร้อมกับ
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();