الإعداد
يعمل التحكم بالإصدارات افتراضياً بمجرد تشغيلLerix.init، مع الشاشات الجاهزة، ولا
يلزمك إضافة شيء للسلوك الافتراضي. لتغييره، مرّر LerixAppControlOptions:
main.dart
الإصدار
ترسل الحزمة الإصدار ورقم البناء منpubspec.yaml (فالقيمة version: 3.4.0+412
ترسل 3.4.0 ورقم البناء 412). وعلى الويب ترسل المنصة web، ولا ترسل الإصدار إلا
إذا احتوى البناء على version.json (ينشئه flutter build web). تقارن القواعد أرقام
البناء حين تتوفر لدى الطرفين.
تغييرات فورية بالإشعار الصامت
حين تبدأ نافذة صيانة أو تنهيها، أو تفرض تحديثاً، يرسل Lerix إشعاراً صامتاً لتتحدث التطبيقات العاملة في الخلفية أيضاً. يصل إلى التطبيقات التي تستدعيLerix.notifications.init() كما في الإشعارات،
وتتولى الحزمة معالجته: لا يُعرض أبداً، ولا يُمرَّر إلى setOnNotificationReceived.
وعلى iOS وmacOS يتطلب الدالة lerix_didReceiveRemoteNotification في AppDelegate
كما في ذلك الدليل، ووضع الخلفية Remote notifications. ومن دون الإشعارات، وعلى
الويب، تلتقط التطبيقات التغيير عند تحققها التالي.
الشاشات الجاهزة
لا حاجة إلى إضافة أي widget. تُدرج الحزمة شاشاتها في الـOverlay الأعلى في تطبيقك،
فوق كل مسار يضيفه الـ navigator.
- الصيانة: تغطي التطبيق كله، مع زر حاول مرة أخرى. وعلى أندرويد يرسل زر الرجوع التطبيق إلى الخلفية.
- التحديث الإلزامي: الحاوية نفسها على كامل الشاشة، مع ملاحظات الإصدار تحت «ما الجديد» وزر تحديث يفتح المتجر (الويب: إعادة التحميل).
- مطالبة التحديث: نافذة حوار (الويب: شريط أسفل الصفحة) فيها تحديث ولاحقاً، وتخطي هذا الإصدار إن كان مسموحاً. تظهر مرة واحدة على الأكثر في كل تشغيل للتطبيق، ويغلقها زر الرجوع دون حفظ لاحقاً.
LerixFeedback، فإن theme وlocale الخاصين به يسريان هنا أيضاً.
أما العناصر التي تضعها فوق الـ navigator في MaterialApp.builder فلا تُغطّى. راجع
واجهة مخصصة لمعرفة متى
تظهر كل شاشة.
شاشاتك الخاصة
اضبطui: false، ثم استمع إلى Lerix.appControl، وهو
ValueListenable<LerixAppControlState>. للحالة الأجزاء update (LerixUpdateInfo)
وmaintenance (LerixMaintenanceInfo) وsdk (LerixSdkControl)، وكل منها null
حين لا ينطبق شيء (الحقول في الحالة).
release_gate.dart
update.isRequired اختصار للفحص نفسه. وللمطالبة غير الإلزامية، استدعِ
الدوال المساعدة من نافذة الحوار الخاصة بك:
Lerix.appControl.stream كل حالة جديدة، إن كنت تفضّل الـ stream.
التحقق الآن
refresh() (أو اسمها البديل checkNow()) مدة صلاحية الإجابة المحفوظة،
فتجلب الحالة وتعيدها. ولا ترمي استثناءً أبداً: دون اتصال تعيد الحالة المحفوظة. والحزمة تتحقق
أصلاً عند التشغيل، وعند عودة التطبيق إلى الواجهة، وكل دقيقة أثناء الطوارئ (راجع
وصول التغييرات والعمل دون اتصال).