アプリの開発が完了したら、将来的に製品がアップグレードされることは避けられないため、お客様の携帯電話上でアプリが自動的にアップグレードされることを望んでいます。これは自動アップグレードと手動アップグレードに分けられます。
自動アップグレード: 通常、顧客のアプリが初めてホームページを開いたときに行われます。
手動アップグレード: アプリのインターフェイスにアップグレードの入り口を提供します。
界面効果は次のように実証されます。
コードは実際には非常に単純ですが、iOS と Android で別々に処理する必要があります。基本的な考え方は、ローカル マシンのアプリのバージョン番号を取得し、それをサーバー上のアプリのバージョン番号と比較し、それがサーバー上のアプリのバージョン番号より小さい場合は、更新操作を実行することです。
var btn = [アップグレードを確認、キャンセル];//アプリ システムのアップデートを取得 [手動でクリックしてアップデートを取得するかどうか] function appUpdate(ismanual) { console.log('appUpdate') { plus .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のバージョン情報データを取得します: { id: 131812xxxx //APP の一意の識別 ID }, contentType: 'application/x-www-form-urlencoded;charset=UTF-8', success: function (data) { 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 + 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', type: 'get', timeout: 10000, success: function (data) { //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('バージョンの更新に失敗しました:' } }); dtask.start(); } }); } else { console.log('現在のバージョン番号はすでに最新です'); if (ismanual) { mui.toast('現在のバージョン番号は最新です'); return; } }, error: function (xhr, type, errerThrown) { if (ismanual) { mui.toast('ネットワーク異常。後でもう一度お試しください'); } });
当社の iOS アプリケーションは Apple App Store で公開されますが、Android アプリケーションは当社独自のサーバー (IIS サーバーなど) に直接デプロイされます。これは、Android アプリケーション マーケットが多すぎるため、バージョンがアップグレードされるたびに同じになるためです。非常に面倒なのは、バージョンをリリースするたびに、すべての Android アプリケーション マーケットにアクセスしてアップデートを提出する必要があることです。
手動更新と自動更新を使用してこのメソッドを呼び出す場合、異なるパラメータを渡す必要があることに注意してください。これは、自動更新では、現在のバージョンがすでに最新バージョンであることがシステムによって検出されると、クライアントに表示されないためです。および手動更新 すでに最新バージョンである場合は、顧客に通知する必要があります。
自動更新呼び出し: appUpdate();//アプリの更新を検出
手動更新呼び出し: appUpdate(true);//アプリの更新を検出
以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。また、VeVb Wulin Network をご支援いただければ幸いです。