美文网首页Vue移动端
hbuilder热更新之入坑日记

hbuilder热更新之入坑日记

作者: 脸小话不多 | 来源:发表于2018-01-09 10:50 被阅读706次

先理一下热更新思路。

1.制作升级包,hbuilder打包wgt。

打包的版本号要高于目前的版本号,在manifest.json里去设置版本号,让后台放到服务器上

2.获取本地版本号

3.本地版本号和服务器上升级包的版本号对比,当升级包版本号高于本地版本号的时候,下载升级包,并且安装。

代码如下:

mui.plusReady(function() {

plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {

//获取本地版本号

var myVersion = wgtinfo.version;

console.log(myVersion);

//判断手机型号

var moble = plus.os.name;

console.log(plus.os.name);

mui.ajax({

type: 'GET',

url: '接口',

headers: {

Accept: 'application/json',

Authorization: 'Bearer ' + token

},

data: {

'platform': moble  //手机型号

},

dataType: 'jsonp',

success: function(msg) {

var msg = JSON.parse(msg);

console.log(msg)

if(msg.code == 0) {

//下载链接

var downlink = msg.data[0].downlink;

//后台返回的新的版本

var newVersion = msg.data[0].version;

//判断新版本是否比本地版本高

console.log(newVersion);

console.log(downlink);

if(newVersion >myVersion) {

mui.toast('检测到新版本,稍后自动更新');

var btnArray=['是','否'];

mui.confirm('是否下载更新?','title',btnArray,function(e){

if(e.index==0){

mui.toast('正在更新');

createDownload();  //下载

return false;

}

});

}else {

return false;

};

function createDownload() {

var dtask = plus.downloader.createDownload(downlink,{filename:'_downloads/'}, function(d, status) {

//下载完成

if(status == 200) {

mui.toast('下载成功'+d.filename);

console.log(d.filename);

installWgt(d.filename);//安装wgt

} else {

mui.toast('下载失败' + status);

}

});

dtask.start();

}

}

}

})

});

//更新应用资源,

function installWgt(path){

plus.nativeUI.showWaiting("安装更新文件...");

    plus.runtime.install(path,{},function(){

        plus.nativeUI.closeWaiting();   

      plus.nativeUI.alert("应用资源更新完成!",function(){

          plus.runtime.restart();

      });

  },function(e){

        plus.nativeUI.closeWaiting();   

      plus.nativeUI.alert("安装更新文件失败["+e.code+"]:"+e.message);

    });

}});

PS:新手入坑,这里要注意一下文件的下载路径。打升级包的时候注意manifest.json开放的权限,要与打包版本一致,否则会安装失败噢。

相关文章

  • hbuilder热更新之入坑日记

    先理一下热更新思路。 1.制作升级包,hbuilder打包wgt。 打包的版本号要高于目前的版本号,在manife...

  • ReactNative入坑: codepush热更新(四)

    如何使用Debug环境调试code-push code-push可以在Debug环境调试(** 真机、模拟器都可以...

  • Bugly热更新集成及踩坑

    Bugly热更新集成及踩坑

  • Flutter入门——Windows下的安装与环境配置(二)

    前言:作为一只刚刚躺完坑的猿、以简书的方式记录这配置的大型入坑现场。 flutter 特点:跨平台,高质量,热更新...

  • 使用mpaas inside 找不到原来的.so文件

    继上次评价mpaas 的热更新为2019年最坑的时候,2020年的首坑,又来自mpaas。因为上次是单独依赖热更新...

  • 关于git

    不知道大家有木有因为选用什么样的编辑器进行开发而纠结过,坦白来讲我经常纠结,我是从Hbuilder入的坑,正...

  • bugly热修复入坑

    刚听朋友说bugly出热修复了,抱着好奇的心发现居然已经那么久的事,居然不知道,结果打开文档的时候Tinker进入...

  • webpack学习(一)

    学习链接:webpack官方webpack中文网 webpack入坑之旅(一)不是开始的开始 webpack入坑之...

  • 集成bugly热更新心得

    前言 因项目需求,研究热更新。调查各种开源框架,最终选择腾讯平台bugly热更新,踏上了踩坑之旅。 遇到的问题 1...

  • H5学习之路

    持续更新中... 前言 从iOS开发入坑,途中掉入Android小坑,现在公司负责iOS及Android大坑,已经...

网友评论

    本文标题:hbuilder热更新之入坑日记

    本文链接:https://www.haomeiwen.com/subject/ewlwnxtx.html