انتقل إلى المحتوى

تكامل Geozones مع MAUI Dotnet

تتيح Geozones لـ Pushwoosh إرسال الإشعارات الفورية بناءً على موقع الجهاز. قبل أن تبدأ، ادمج SDK الأساسي كما هو موضح في MAUI Dotnet، بما في ذلك متطلباته. ثم اتبع هذه الخطوات:

  1. أضف حزمة NuGet Pushwoosh.DotNet.Geozones إلى الحل الخاص بك. حدّثها مع 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.

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