بعد اكتمال تطوير التطبيق لدينا، لا مفر من ترقية المنتج في المستقبل، لذلك نأمل أن تتم ترقية التطبيق تلقائيًا على الهاتف المحمول الخاص بالعميل، والتي يمكن تقسيمها إلى ترقية تلقائية وترقية يدوية.
الترقية التلقائية: عادةً عندما يفتح تطبيق العميل الصفحة الرئيسية لأول مرة.
الترقية اليدوية: قم بتوفير مدخل للترقية في واجهة التطبيق.
يظهر تأثير الواجهة على النحو التالي:
الكود في الواقع بسيط جدًا، ولكن يجب معالجته بشكل منفصل لنظامي التشغيل iOS وAndroid. الفكرة الأساسية هي الحصول على رقم إصدار التطبيق للجهاز المحلي، ثم مقارنته برقم إصدار التطبيق الموجود على الخادم، وإذا كان أقل من رقم إصدار التطبيق الموجود على الخادم، فقم بإجراء عملية تحديث.
var btn = [تأكيد الترقية، إلغاء];// احصل على تحديث نظام التطبيق [ما إذا كنت تريد النقر يدويًا للحصول على التحديث] function appUpdate(ismanual) { console.log('appUpdate'); .runtime.getProperty(plus.runtime.appid, function (inf) { ver = inf.version; console.log('ver:' + ver); var url = config.GetAppVersion; var. client; var ua = navigator.userAgent.toLowerCase(); if (/iphone|ipad|ipod/.test(ua)) { // هاتف Apple mui.ajax({ type: get, dataType: 'json', url: https://itunes.apple.com/lookup?id=1318127518,//احصل على بيانات معلومات إصدار APPStore المتوفرة حاليًا: {المعرف: 131812xxxx // معرف التعريف الفريد للتطبيق }، نوع المحتوى: 'application/x-www-form-urlencoded؛charset=UTF-8'، النجاح: الوظيفة (بيانات) { console.log('data:' + JSON.stringify(data) ); var resultCount = data.resultCount; for (var i = 0; i < resultCount; i++) { var normItem = data.results[i].version; console.log('normItem:' + normItem) if (normItem > ver) { var _msg = تم العثور على إصدار جديد: V + normItem; //plus.nativeUI.alert(تم العثور على إصدار جديد: V +normItem(); _msg، "تأكيد الترقية"، btn، function (e) { if (e.index == 0) { // إجراء عملية الترقية document.location.href = 'https://itunes.apple.com/cn/app/san-gu-hui/id131812xxxx?mt=8'; // عنوان تنزيل APPStore الجديد} }); return; ('رقم الإصدار الحالي هو الأحدث'); } return } }); else if (/android/.test(ua)) { mui.ajax(url, { data: { apkVersion: ver، }، نوع البيانات: 'json'، النوع: 'get'، المهلة: 10000، النجاح: الوظيفة (البيانات) { //console.log('data:'+JSON.stringify(data)) if ( data.StatusCode = 200 && data.Data > ver) { //mui.toast(تم العثور على نسخة جديدة: V + data.Data);// احصل على رقم إصدار andriod الجديد في قاعدة البيانات البعيدة var _msg=تم العثور على إصدار جديد: V + data.Data; mui.confirm(_msg, 'تأكيد الترقية', btn, function (e) { if ( e .index == 0) { // إجراء عملية الترقية plus.nativeUI.toast (تحضير البيئة، يرجى الانتظار!) ); var dtask = plus.downloader.createDownload(config.apkUrl, {}, function (d,status) { if (status == 200) { var path = d.filename;// تنزيل apk plus.runtime.install( path); // تثبيت ملف APK تلقائيًا } else { plus.nativeUI.alert('فشل تحديث الإصدار:' + الحالة } }); dtask.start(); } }); else } console.log("رقم الإصدار الحالي هو الأحدث بالفعل"); return; } }, error: function (xhr, type, errerThrown) { if (ismanual) { mui.toast('خلل في الشبكة، يرجى المحاولة مرة أخرى لاحقًا'); } });}
يتم نشر تطبيقات iOS الخاصة بنا في متجر تطبيقات Apple، بينما يتم نشر تطبيقات Android مباشرة على خوادمنا الخاصة (مثل خوادم IIS)، نظرًا لوجود عدد كبير جدًا من أسواق تطبيقات Android، لذلك في كل مرة تتم فيها ترقية الإصدار، سيكون هو نفسه الأمر المزعج للغاية هو أنه في كل مرة تقوم فيها بإصدار إصدار، يتعين عليك الذهاب إلى جميع أسواق تطبيقات Android لإرسال التحديثات.
تجدر الإشارة إلى أنه عند استدعاء هذه الطريقة باستخدام التحديث اليدوي والتحديث التلقائي، يجب تمرير معلمات مختلفة، لأنه في التحديث التلقائي، إذا اكتشف النظام أن الإصدار الحالي هو بالفعل الإصدار الأحدث، فلن يتم عرضه على العميل والتحديث اليدوي إذا كان الإصدار الأحدث بالفعل، فيجب تذكير العميل.
استدعاء التحديث التلقائي: appUpdate();// كشف تحديثات التطبيق
استدعاء التحديث اليدوي: appUpdate(true);//الكشف عن تحديثات التطبيق
ما ورد أعلاه هو المحتوى الكامل لهذه المقالة وآمل أن يكون مفيدًا لدراسة الجميع وآمل أيضًا أن يدعم الجميع شبكة VeVb Wulin.