appcan自動アップグレード機能について

5859 ワード

現在UAT環境のアプリはappcanとhtml 5で作成されており、多くの友人がUATアプリのアップグレード方法を聞いています
私たちはzy_control.jsには、現在のappのバージョン番号を示す変数versionがいくつか作成されます(注記:zy_controlにはappcanの初期化コードが含まれているため、基本的には各ページにこのjsをインポートする必要があります).
アプリを開くたびにウェルカムインタフェースでappcan widgetOneを呼び出してプラットフォーム性を取得し、現在の携帯電話がIOSなのかアンドロイドなのかを判断します.
uexWidgetOne.getPlatform();//       (step:1)    
            uexWidgetOne.cbGetPlatform = function(opId, dataType, data)
            {
                var update = 0;
                if (data == 1)
                {
                    update = 1;
                } else
                {
                    //  IOS
                    update = 2;
                }
                setstorage("sysos",update);//            
                $.ajax({
                    type: 'GET',
                    url: ApIp + "/ManagerDemo/app/update.do?type=" + update,
                    dataType: 'json',
                    timeout: 20000,
                    error: function(){
                        msgPrompt(getLang("wlanError"))
                    },
                    success: function(data){
                        console.log(data)
                        if (data.msg == 10000)
                        {
                            return;
                        }
                        updateUrl = data.appUrl;
                        setstorage('updateUrl', updateUrl);
                       setstorage("remoteVersion", data.version);//
                    }
                });
            };
その後、バックグラウンドへの最新バージョン番号の取得要求が開始され、受信タイプに応じて最新バージョン番号が取得され、バージョン番号がキャッシュに格納されます.
setstorage("remoteVersion", data.version);//    

ユーザーが機能をクリックしている間に現在のバージョン番号とリモートバージョン番号が一致しないことに基づいてダウンロード操作を行うIOSはURLにジャンプしてインストールする必要があります
checkLogin:function (){
				
			var url=getstorage("updateUrl");
			if (menu.remoteVersion != null ) {
				if (menu.remoteVersion != version) {

					uexWindow.cbConfirm = function(){
						switch(index_content.os){
							case 1:
								beihai365_app_update();
								break;
							case 2:
								 uexWidget.loadApp(url,null,null);
						}
					};
					uexWindow.confirm(getLang("sureMsg"), getLang("suerToUpdate"), [getLang("sure"), getLang("nosure")]);
					return false;
				}
			}
            return menu.judgeSessionId();
        }
function beihai365_app_update(){
    var flag_sdcard = 1;
    var fileName = 'AppPer.apk';//      
    var updateurl = getstorage("updateUrl")+fileName;//   apk    
    var filepath2 = "/sdcard/";//   sd 
    var platform1 = '';//    
    //var update_msg = "      ,    ?";  //    
    
      //    ,       (step:7)
    uexDownloaderMgr.onStatus = function(opId, fileSize, percent, status) {
            if (status == 0) {
                    //    ...
                    //alert('download percent ' + percent + '%');
                    uexWindow.toast('1', '5', '    :' + percent + '%', '');
            } else if (status == 1) {//     .
                    uexWindow.closeToast();
                    uexDownloaderMgr.closeDownloader('14');//      
                    //localStorage.clear(); 
                    //alert(filepath2+fileName);
                    uexWidget.installApp(filepath2+fileName);//     apk  
            } else {
                     uexDownloaderMgr.closeDownloader('14');//      
                    //uexWindow.toast('1', '5', '   SD      .', '');
            }
    };
    //    ,          (step:6)
    uexDownloaderMgr.cbCreateDownloader = function(opId, dataType, data) {
            //alert('uexDownloaderMgr.cbCreateDownloader data='+data);
            if (data == 0) {
                    //updateurl     cbCheckUpdate   ,       
    
                    uexDownloaderMgr.download('14', updateurl, filepath2+fileName, '0');//    apk  
            } else if (data == 1) {
                    ;
            } else {
                    ;
 }
    };
    
   
    
    //        sd      (step:3)
    uexFileMgr.cbIsFileExistByPath = function(opCode, dataType, data) {
            //alert('uexFileMgr.cbIsFileExistByPath flag_sdcard='+flag_sdcard+' , data='+data);
            if (flag_sdcard == 0) {
                    if (data == 0) {
                        scscms_alert(getLang("SDCard"), getLang("sure"));
                        //    alert('      sd     ');
                    } else {
                         if (platform1 == 1) {
                            //     ,            
                            uexDownloaderMgr.createDownloader("14");
                        }else if(platform1 == 0){
                            //    
//                            uexWidget.loadApp("", "", updateurl);
                        }
                    }
            } 
    };
    //          ,                (step:2)
    uexWidgetOne.cbGetPlatform = function(opId, dataType, data) {
            //alert('b');
            //            
            platform1 = data;
            //alert(platform1);
            console.log(platform1);
            if (data == 1) {
                    //  android
                    flag_sdcard = 0;
                    uexFileMgr.isFileExistByPath('/sdcard/');//       sd ,   checkUpdate     
            }else if(data == 0){
                //alert("  IOS");
                //uexWidget.checkUpdate();
            }
    };
    uexWidgetOne.getPlatform();//       (step:1)    
}
      :appcan                       。    appcan      support,     app        
        。