تكامل Geozones مع MAUI Dotnet
تتيح Geozones لـ Pushwoosh إرسال الإشعارات الفورية بناءً على موقع الجهاز. قبل أن تبدأ، ادمج SDK الأساسي كما هو موضح في MAUI Dotnet، بما في ذلك متطلباته. ثم اتبع هذه الخطوات:
- أضف حزمة NuGet Pushwoosh.DotNet.Geozones إلى الحل الخاص بك. حدّثها مع
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.

- ثم ابدأ تتبع الموقع عن طريق استدعاء دالة
StartLocationTracking().
using PushwooshSDK.DotNet.Geozones;
...
LocationManager.Instance.StartLocationTracking();