После завершения разработки нашего приложения неизбежно, что продукт будет обновлен в будущем, поэтому мы надеемся, что приложение будет автоматически обновляться на мобильном телефоне клиента, что можно разделить на автоматическое обновление и обновление вручную.
Автоматическое обновление: обычно, когда клиентское приложение впервые открывает домашнюю страницу.
Обновление вручную: предоставьте вход для обновления в интерфейсе приложения.
Эффект интерфейса проявляется следующим образом:
Код на самом деле очень простой, но его нужно обрабатывать отдельно для 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 phone mui.ajax({ type: get, dataType: 'json', url: https://itunes.apple.com/lookup?id=1318127518, //Получите доступные на данный момент данные о версии APPStore: { id: 131812xxxx //Уникальный идентификатор идентификации приложения}, contentType: '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++) { varnormalItem = data.results[i].version; console.log('normItem:' +normalItem) if (normItem > ver) { var _msg = Найдена новая версия: V +normalItem; //plus.nativeUI.alert(Найдена новая версия: V + mui.confirm(); _msg, 'Подтверждение обновления', btn, function (e) { if (e.index == 0) { //Выполняем операцию обновления document.location.href = 'https://itunes.apple.com/cn/app/san-gu-hui/id131812xxxx?mt=8'; //Новый адрес загрузки APPStore} } } if (ismanual) {mui. ('Текущая версия самая последняя'); } return; } } } else if (/android/.test(ua)) { mui.ajax(url, { data: { apkVersion: ver, }, dataType: 'json', тип: 'get', тайм-аут: 10000, успех: функция (данные) { //console.log('data:'+JSON.stringify(data)) if ( data.StatusCode = 200 && data.Data > ver) { //mui.toast(Найдено новая версия: V + data.Data);//Получаем новый номер версии Android в удаленной базе данных 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('Ошибка обновления версии:' + status } }); dtask.start(); } }); } else { console.log('Текущий номер версии уже самый последний'); if (ismanual) { mui.toast('Текущий номер версии является самым последним'); return; } }, ошибка: function (xhr, type, errerThrown) { if (ismanual) { mui.toast('Неисправность сети, повторите попытку позже'); } }); });}Наши приложения для iOS публикуются в Apple App Store, а приложения для Android развертываются непосредственно на наших собственных серверах (например, серверах IIS), поскольку существует слишком много рынков приложений для Android, поэтому каждый раз, когда версия обновляется, она будет одинаковой. Очень неприятно то, что каждый раз, когда вы выпускаете версию, вам приходится заходить на все рынки приложений Android, чтобы отправлять обновления.
Следует отметить, что при вызове этого метода с использованием ручного обновления и автоматического обновления необходимо передавать разные параметры, поскольку при автоматическом обновлении, если система обнаружит, что текущая версия уже является последней версией, она не будет отображаться на клиенте. и обновление вручную. Если это уже последняя версия, клиенту необходимо напомнить об этом.
Автоматический вызов обновления: appUpdate();//Обнаружение обновлений приложения
Вызов обновления вручную: appUpdate(true);//Обнаружение обновлений приложения
Выше приведено все содержание этой статьи. Я надеюсь, что она будет полезна для изучения всеми. Я также надеюсь, что все поддержат сеть VeVb Wulin.