1. 程式人生 > >hbuilder熱更新

hbuilder熱更新

前端程式碼:

// 獲取當前應用的版本號

​
var wgtVer=null;
function plusReady(){
    // ......
    // 獲取本地應用資源版本號
    plus.runtime.getProperty(plus.runtime.appid,function(inf){
        wgtVer=inf.version;
        console.log("當前應用版本:"+wgtVer);
        checkUpdate(); 
    });
}
if(window.plus){
    plusReady();
}else{
    document.addEventListener('plusready',plusReady,false);
}

​




// 發起ajax請求檢測是否有新版本

var checkUrl="http://ptest.liby.com.cn/MessageTransfer.php?c=message&m=getupdatetwo";
function checkUpdate(){
//     plus.nativeUI.showWaiting("檢測更新...");
    var xhr=new XMLHttpRequest();
    xhr.onreadystatechange=function(){
        switch(xhr.readyState){
            case 4:
            plus.nativeUI.closeWaiting();
            if(xhr.status==200){
                console.log("檢測更新成功:"+xhr.responseText);
                var newVer=xhr.responseText;
                newVer = JSON.parse(newVer);
       
                if(wgtVer&&newVer&&(wgtVer.substring(0,3) < newVer.versionName.substring(0,3))){
                if(window.confirm('檢測到更新,是否更新?')){
                    downWgt(newVer.apk);  // 下載升級包
                }
                }else{
                    // plus.nativeUI.alert("無新版本可更新!");
                }
            }else{
                console.log("檢測更新失敗!");
                // plus.nativeUI.alert("檢測更新失敗!");
            }
            break;
            default:
            break;
        }
    }
    xhr.open('GET',checkUrl);
    xhr.send();
}






// 下載wgt檔案
// var wgtUrl="http://demo.dcloud.net.cn/test/update/H5EF3C469.wgt";
function downWgt(wgtUrl){
// console.log(wgtUrl);return;
    plus.nativeUI.showWaiting("下載更新檔案...");
    plus.downloader.createDownload( wgtUrl, {filename:"_doc/update/"}, function(d,status){
        if ( status == 200 ) { 
            console.log("下載更新檔案成功:"+d.filename);
            installWgt(d.filename); // 安裝wgt包
        } else {
            console.log("下載失敗!");
            plus.nativeUI.alert("下載失敗!");
        }
        plus.nativeUI.closeWaiting();
    }).start();
}






// 更新應用資源
function installWgt(path){
    plus.nativeUI.showWaiting("安裝更新檔案...");
    plus.runtime.install(path,{},function(){
        plus.nativeUI.closeWaiting();
        console.log("安裝更新檔案成功!");
        plus.nativeUI.alert("應用資源更新完成!",function(){
            plus.runtime.restart();
        });
    },function(e){
        plus.nativeUI.closeWaiting();
        console.log("安裝更新檔案失敗["+e.code+"]:"+e.message);
        plus.nativeUI.alert("安裝更新檔案失敗["+e.code+"]:"+e.message);
        if(e.code == 10){
        alert('請清除臨時目錄');
        }
    });

}

php程式碼:

public function getupdatetwo()
    {
        $arr = array(
            'versionCode' => 102,
            'versionName' => '1.8.0',
            'msg' => '有新版本可供更新.\n 1.介面美化 \n 2.效能優化',
            'apk' => 'http://cloud-dev.playxs.com/static/app/H50488D36.wgt',//存放在伺服器的升級資源包
            );
        echo trim(json_encode($arr));
    }

相關推薦

hbuilder更新

前端程式碼: // 獲取當前應用的版本號 ​ var wgtVer=null; function plusReady(){     // ......     // 獲取本地應用資源版本號     plus.runtime.getProperty(plus.runtime

Vue封裝hbuilder更新

main.js import AutoUpdateApp from './common/AutoUpdateApp/AutoUpdateApp' //我存放AutoUpdateApp.js的目錄 Vue.use(AutoUpdateApp) Auto

HBuilder更新

                                                     HBuilder 的熱更新 導讀:我在移動APP開發之中特別困擾appStore的更新問題,沒

webpack-dev-middleware 和 webpack-hot-middleware 實現express全棧更新

express 自動刷新 你在 fig evm inf targe target ddl 場景: node server.js 啟動後端服務器。 npm run dev 啟動前端服務器。 當你需要node的express框架和webpack結合的時候,就會用到題上的

Unity更新技術整理

nil 支持 -s 運行 ram 創建 color 腳本語言 更改 一、熱更新學習介紹 1、什麽是熱更新 舉例來說: 遊戲上線後,玩家下載第一個版本(70M左右或者更大),在運營的過程中,如果需要更換UI顯示,或者修改遊戲的邏輯,這個時候,如果不使用熱更新,就需要重新打

webstrom的更新沒效果

data img alt http fmt use bsp 分享 rom webstorm保存的時候會先保存到臨時文件中,其實並沒有真正保存,要在setting->stystem settings下的“use save write”去掉 webstrom的熱更

蘋果下架4萬App就只是因為“更新

方式 音樂 新功能 遠程服務 ring 打開 java、 蘋果公司 其他 前去除軟件熱更新功能,不然有可能下架後,昨日(6 月 22 日),有媒體報道,一周內蘋果 App Store 下架了近 4萬款中國 App 。一種流行觀點認為,蘋果不是說著玩,而是真對熱更新動刀子了。

Unity編程筆錄--ulua+PureMVC框架簡單更新使用

ons data- 全部 lds center lin 腳本 mar 視圖 ulua+PureMVC框架簡單熱更新使用 前言: 1:作者官網論壇 首先介紹的是這個框架是一位大牛 駿擎【CP】 jarjin 寫的,據說原本是“非常多人不知道怎

ionic 更新 cordova-hot-code-push

ima auto width 自動 平臺 不同 2.3 轉載 加載 cordova-hot-code-push ,Cordova熱代碼推送插件提供了在應用程序中執行基於Web的內容的自動更新的功能。使用此插件可以更新存儲在項目的www文件夾中的所有內容。 cordova-h

webpack更新問題和antd design字體圖標庫擴展

成功 其他 一加 是你 sign 你在 一個 兩個 pri 附一張上周末參加jsconf的照片。。。。。 標題也不知道怎麽寫好,真是尷尬。不過話說回來,距離上一次寫文快兩個月了,最近有點忙,一直在開發新項目, 今天剛剛閑下來,項目準備提測。借這個功夫寫點東西,把新項目上學到

使用IntelliJ IDEA過程中webpack無法更新

更換 福音 avi 更新 方式 pear ear pack onf 最近發現一個問題,就是在使用IntelliJ 的過程中發現webpack的熱更新失效,也在網上找過很多的修改webpack.config.js配置文件的方法,但是都沒有生效,看著同事們一個一個在愉(tong

Unity更新代碼

unity熱更新對資源的更新比較簡單,把資源打包成AB文件,然後放到資源服務器上,客戶端程序啟動時下載AB文件,程序加載AB文件就可以了,但對與C#程序來說如何進行更新呢,可以將C#打包到Dll裏,然後將Dll放到資源服務器上,客戶端下載DLL通過如下代碼加載Dll WWW www = new WWW (UR

Unity更新概念

unity熱更新 什麽是熱更新呢?首先需要了解移動程序的發布流程:將程序進行打包成相應平臺的程序包,就拿Appsrote平臺來說,需要將程序打包成xcarchive,打包好後,上傳蘋果商店,上傳之後,蘋果商店需要進行審核(審核的時間一般是一周左右),審核通過之後,玩家才可以下載最新的程序,下載時需要下載整個程

Unity3D更新方案網摘總結

xiang 分配 3.5 速度慢 for 小夥伴 source 為什麽 software 參考:http://blog.csdn.net/guofeng526/article/details/52662994 http://blog.csdn.net/u010019717/

nginx   Binary更新

nginx1、更新Binary# cp /usr/loca/nginx/sbin/nginx /usr/loca/nginx/sbin/nginxbak //備份 # cp /usr/local/nginx-12.1/sbin/nginx/ /usr/loca/sbin/nginx //跟新新文件2、給

nodejs更新

介紹 nodejs 服務 我們 開發 png 一個 clas code 如果你有 PHP 開發經驗,會習慣在修改 PHP 腳本後直接刷新瀏覽器以觀察結果,而你在開發 Node.js 實現的 HTTP 應用時會發現,無論你修改了代碼的哪一部份,都必須終止Node.js 再

cordova更新

tips .config enable all ble tip auto ini develop cordova熱更新一。app部分1.npm安裝npm install -g cordova-hot-code-push-cli 2.cordova插件安裝cordova pl

網狐榮耀版手機端與pc端更新的配置

在遊戲使用過程中,輸贏控制是必不可少的,那怎麽怎麽進行遊戲控制呢?下面簡單簡介。 一、控制賬號的註冊。 二、控制客戶端的生成。 三、進行控制。 就這三步即可實現控制。 QQ:457189 網狐榮耀版手機端與pc端熱更新的配置

【學習】Unity手遊之路<十二>手遊資源更新策略探討

似的 remove 方式 comment word rep 熱更新 style encoding http://blog.csdn.net/janeky/article/details/17666409 =================================

webpack快速入門——配置文件:服務和更新

並且 base 復制 暴露 span port 錯誤 tput 自己的 1.在終端安裝 cnpm i webpack-dev-server --save-dev 2.配置好後執行 webpack-dev-server,這時候會報錯 出現錯誤,只需要在pagejson裏