الانتقال إلى المحتوى الرئيسي
لمعرفة ما يقدّمه التحكم بالإصدارات وكيف تضبط القواعد في لوحة التحكم، راجع التحكم بالإصدارات.

الإعداد

يعمل التحكم بالإصدارات افتراضياً بمجرد تشغيل Lerix.initialize()، مع الشاشات الجاهزة. لتغييره، مرّر appControl:
MyApplication.kt

تحديثات Google Play داخل التطبيق

يتطلب usePlayInAppUpdate وجود مكتبة Play للتحديث داخل التطبيق في تطبيقك. لا تضمّها الحزمة، فأضفها بنفسك:
app/build.gradle.kts
ومن دون المكتبة، أو للتطبيقات غير المثبتة من Google Play، يفتح زر تحديث رابط المتجر كالمعتاد.

الإصدار

ترسل الحزمة versionName بوصفه الإصدار وversionCode بوصفه رقم البناء، واسم الحزمة (package name) ليبني Lerix رابط Google Play. تقارن القواعد أرقام البناء حين تتوفر لدى الطرفين.

تغييرات فورية بالإشعار الصامت

حين تبدأ نافذة صيانة أو تنهيها، أو تفرض تحديثاً، يرسل Lerix رسالة بيانات صامتة عبر FCM لتتحدث التطبيقات العاملة في الخلفية أيضاً. تصل إلى التطبيقات التي أُعدّت فيها الإشعارات، وتتولى الحزمة معالجتها: لا تُعرض أبداً كإشعار. ومن دون الإشعارات، تلتقط التطبيقات التغيير عند تحققها التالي.

الشاشات الجاهزة

  • الصيانة: نشاط (activity) على كامل الشاشة فوق تطبيقك، مع زر حاول مرة أخرى. يرسل زر الرجوع التطبيق إلى الخلفية، ولا يعيد المستخدم إلى التطبيق أبداً. وإذا عاد نشاط آخر من تطبيقك إلى الواجهة، تعود الشاشة فوقه.
  • التحديث الإلزامي: الحاوية نفسها على كامل الشاشة، مع ملاحظات الإصدار وزر تحديث.
  • مطالبة التحديث: نافذة حوار على النشاط الحالي فيها تحديث ولاحقاً، وتخطي هذا الإصدار إن كان مسموحاً. ويغلقها زر الرجوع دون حفظ لاحقاً.
تعلن الحزمة عن نشاطها عبر دمج ملفات manifest، فلا حاجة إلى إضافة شيء إلى AndroidManifest.xml. تتبع الأزرار لغة الجهاز (العربية من اليمين إلى اليسار، أو الإنجليزية). راجع واجهة مخصصة لمعرفة متى تظهر كل منها.

شاشاتك الخاصة

اضبط ui = false، ثم اجمع Lerix.appControl.state، وهو StateFlow<LerixAppControlState>. للحالة الأجزاء update (LerixAppUpdate) وmaintenance (LerixMaintenance) وsdk (LerixSdkControl)، وكل منها null حين لا ينطبق شيء (الحقول في الحالة). وتقرأ Lerix.appControl.currentState الحالة مرة واحدة.
MainActivity.kt
وخارج الـ coroutines، استخدم مستمعاً يُستدعى على الخيط الرئيسي:
وتتولى الدوال المساعدة عمل الأزرار:
مرّر النشاط الحالي إلى openStore لتبدأ منه شاشة التحديث الخاصة بـ Play. ومن دونه تستخدم الحزمة النشاط الموجود في الواجهة.

التحقق الآن

الدالة Lerix.appControl.refresh() من نوع suspend، وتتجاهل مدة صلاحية الإجابة المحفوظة، فتجلب الحالة وتعيدها. وتفعل refresh(callback) الشيء نفسه من شيفرة لا تستخدم الـ coroutines. والحزمة تتحقق أصلاً عند التشغيل، وعند عودة التطبيق إلى الواجهة، وكل دقيقة أثناء الطوارئ (راجع وصول التغييرات والعمل دون اتصال).