關於mui的熱更新。

2021-08-17 15:35:50 字數 2010 閱讀 1369

官方給出的文件講解的很少,所以自己便開始研究了。

首先mui中的update.js很簡單。自帶的主要**如下:

var server = ""; //獲取公升級描述檔案伺服器位址,官方的**為:內容為:

/*官方給出的服務端位址為

內容模板為:*/

另外一種h5+比較複雜,是在js裡面判斷是否需要更新,同時可操作性更強。完整**如下:

/** * [email protected]

* * 公升級檔案為json格式資料,如下:

, "android":} *

*/(function(w)

// 開啟doc根目錄

plus.io.requestfilesystem( plus.io.private_doc, function(fs), function(entry), function(e));

},function(e));

}/**

* 檢測程式公升級

*/function checkupdate()

// 取消已過期,刪除取消標記

plus.storage.removeitem( keyupdate );

} // 讀取本地公升級檔案

dir.getfile( localfile, , function(fentry)catch(e)

checkupdatedata( data );

}reader.readastext(file);

}, function(e) );

}, function(e));

}/**

* 檢查公升級資料

*/function checkupdatedata( j )

// 判斷是否需要公升級

if ( compareversion(curver,srvver) ) else if ( 1==i.index ) else

}, inf.title, ["立即更新","跳過此版本","取  消"] );

} }}/**

* 從伺服器獲取公升級資料

*/function getupdatedata(), function(fentry)

writer.write( xhr.responsetext );

}, function(e) );

}, function(e));

} else

break;

default :

break;

}} xhr.open( "get", server );

xhr.send();

}/**

* 比較版本大小,如果新版本nv大於舊版本ov則返回true,否則返回false

* @param ov

* @param nv

* @return

*/function compareversion( ov, nv )

var b=false,

ova = ov.split(".",4),

nva = nv.split(".",4);

for ( var i=0; ino || sn.length>so.length ) else if ( nnova.length && 0==nv.indexof(ov) )

}if ( w.plus ) else

})(window);

下面來看**,var server="",//獲取公升級描述檔案伺服器位址

localdir="update",localfile="update.json",//本地儲存公升級描述目錄和檔名

keyupdate="updatecheck",//取消公升級鍵名

keyabort="updateabort",//忽略版本鍵名

checkinterval=604800000,//公升級檢查間隔,單位為ms,7天為7*24*60*60*1000=604800000, 如果每次啟動需要檢查設定值為0

dir=null;

今天關於熱更新,蘋果發飆了

今天,好多ios開發裡面用到jspatch,以及部分react native weex來實現熱更新的開發者,收到蘋果的警告郵件 dear developer,best regards,隨後在react native中文網上說,react native 不會受到影響,只對使用了jspatch,詳細請看...

Erlang的熱更新

熱更步驟 1.建立熱更模組介面 2.替換編譯檔案.beam 3.執行熱更 主要實現方法是使用code 服務函式 code purge mod 清除模組的 清除並標記為舊版本 code load file mod 載入乙個模組 由於模組載入之後存在虛擬機器 可直接替換bin資料夾中的mod.beam檔...

war包熱更新 electron 熱更新實現方式

1 electron是乙個外殼 html js css 資料報 按照官方的邏輯,採用electron builder的時候 會直接打包成asar 如果單單是打包html檔案也就算了,關鍵裡面還打包的node module 整整100mb 我只更新個html,不可能對node module重新打包吧。...