uniapp安卓手機版本自檢更新

安卓手機版本自檢更新思路,現(xiàn)在后臺定義一個版本參數(shù),每次打開app的時候進行版本參數(shù)獲取,并且跟本地的版本參數(shù)進行比較,如果本地的版本參數(shù)小于或不等于后臺定義的版本,那么就會提醒更新版本,然后從放在后臺服務器的apk進行下載安裝。

檢查版本,提醒用戶是否更新版本,這里的plushtml5+的api

    var server_version = store.state.appversion
    export async function AndroidCheckUpdate(){  
         try{
             let version = await api('v2/cms/QueryConfigs',{
                 data:{
                     'type':'sys',
                     'key':'cthrVersion'
                 }
              })
              console.log('version',version)
              server_version = version[0].value
             let curr_version = store.state.appversion
             checkVersionToLoadUpdate(server_version,curr_version)
         }catch(e){
             console.log(e)
         }
    }
    function checkVersionToLoadUpdate(server_version,curr_version){
        console.log(server_version+'---'+curr_version,server_version !== curr_version);
        if(server_version !== curr_version){
            //TODO 此處判斷是否為 WIFI連接狀態(tài)
            if(plus.networkinfo.getCurrentType()!=3){
                uni.showToast({  
                    title: '有新的版本發(fā)布,檢測到您目前非Wifi連接,為節(jié)約您的流量,程序已停止自動更新,將在您連接WIFI之后重新檢測更新',  
                    mask: true,  
                    duration: 5000,
                    icon:"none"
                });  
                return;  
            }else{
                uni.showModal({
                    title: "版本更新",
                    content: `有新的版本發(fā)布,檢測到您當前為Wifi連接,是否立即進行新版本下載?當前下載版本為${server_version}`,
                    confirmText:'立即更新',
                    cancelText:'稍后進行',
                    success: function (res) {
                        if (res.confirm) {
                            uni.reLaunch({
                                url:'/pages/auth/updatePage/updatePage'
                            })
                        } else if (res.cancel) {
                            console.log('稍后更新');
                        }
                    }
                });
            }
        }
    }

進入下載頁進行apk包下載,這里下載完成之后會自動拉起安裝框進行文件安裝。

var totalSize = 0
var nowbaifen = 0
export function uniDownload(){
    uni.showToast({
        icon:"none",
        mask: true,
        title: '有新的版本發(fā)布,檢測到您目前為Wifi連接,程序已啟動自動更新。新版本下載完成后將自動彈出安裝程序',  
        duration: 5000,  
    }); 
    //設置 最新版本apk的下載鏈接
    var downloadApkUrl = '最新版本apk的下載鏈接';
    var dtask = plus.downloader.createDownload( downloadApkUrl, {}, function ( d, status ) {  
            // 下載完成  
            if ( status == 200 ) {   
                plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename),{},{},function(error){  
                    uni.showToast({  
                        title: '安裝失敗', 
                        duration: 1500  
                    });  
                })
            } else {  
                 uni.showToast({  
                    title: '更新失敗',
                    duration: 1500  
                 });  
            }    
        });
          //監(jiān)聽下載
        dtask.addEventListener("statechanged", function (download, status) {
          switch (download.state) {
              case 2:
                // plus.nativeUI.showWaiting("正在下載...");
                  break;
              case 3:
                //進度條百分比 totalSize為總量,baifen為當前下載的百分比
                if(totalSize==0){
                  totalSize=parseInt(download.totalSize);
                }
                if(parseInt(download.downloadedSize/totalSize*100)!=nowbaifen){
                   nowbaifen=parseInt(download.downloadedSize/totalSize*100);
                   store.state.baifen = nowbaifen
                   // store.commit('getBaifen',nowbaifen)
                   console.log('baifen',store.state.baifen)
                }                           
                  break;
              case 4:
                 uni.showToast({
                    title: '下載完成',
                    duration: 1500  
                 });
                // plus.nativeUI.closeWaiting();
                  break;
          }
      });
    dtask.start();
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容