var wgtVer = null;
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
wgtVer = inf.version;
console.log("当前应用版本:" + wgtVer); // 检测更新
var checkUrl = getAbsUrl("update/check"); 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;
if(wgtVer && newVer && (wgtVer != newVer)) {
// 下载升级包
newVer = newVer.replace('.', '');
var wgtUrl = getAbsUrl("qr/" + newVer + ".wgt"); plus.nativeUI.showWaiting("下载wgt文件...");
plus.downloader.createDownload(wgtUrl, {
filename: "_doc/update/"
}, function(d, status) {
if(status == 200) {
console.log("下载wgt成功:" + d.filename);
// 安装wgt包
var path = d.filename;
plus.nativeUI.showWaiting("安装wgt文件...");
plus.runtime.install(path, {}, function() {
plus.nativeUI.closeWaiting();
console.log("安装wgt文件成功!");
plus.nativeUI.alert("应用资源更新完成!", function() {
plus.runtime.restart();
});
}, function(e) {
plus.nativeUI.closeWaiting();
console.log("安装wgt文件失败[" + e.code + "]:" + e.message);
plus.nativeUI.alert("安装wgt文件失败[" + e.code + "]:" + e.message);
});
}
plus.nativeUI.closeWaiting();
}).start();
}
} else {
console.log("检测更新失败!");
}
break;
default:
break;
}
}
xhr.open('POST', checkUrl);
xhr.send();
} checkUpdate();
});
 

下面是整包更新的代码:

mui.getJSON(getAbsUrl('update/check'), {
"appid": plus.runtime.appid,
"version": plus.runtime.version
}, function(data) {
if(data.status) {
plus.nativeUI.confirm(data.note, function(event) {
if(0 == event.index) {
plus.runtime.openURL(data.url);
}
}, data.title, ["立即更新", "取  消"]);
}
});

参考:http://ask.dcloud.net.cn/article/182

dcloud资源升级方式更新app的更多相关文章

  1. 【uniapp 开发】uni-app 资源在线升级/热更新

    注:本文为前端代码资源热更新.如果是整包升级,另见文档 https://ask.dcloud.net.cn/article/34972 HBuilderX 1.6.5 起,uni-app 支持生成 A ...

  2. Fiddler用AutoResponder实现app升级异步更新

    先说一下我自己理解的异步更新:用app异步升级举例,app是否升级的检查是在启动app时访问服务器的,把app本地的最新版本号与服务器端的最新版本号做对比,假如不一致,则提示升级.但本次已经打开使用a ...

  3. [Phonegap+Sencha Touch] 移动开发77 Cordova Hot Code Push插件实现自己主动更新App的Web内容

    原文地址:http://blog.csdn.net/lovelyelfpop/article/details/50848524 插件地址:https://github.com/nordnet/cord ...

  4. nrf52——DFU升级USB/UART升级方式详解(基于SDK开发例程)

    摘要:在前面的nrf52--DFU升级OTA升级方式详解(基于SDK开发例程)一文中我测试了基于蓝牙的OTA,本文将开始基于UART和USB(USB_CDC_)进行升级测试. 整体升级流程: 整个过程 ...

  5. nrf52——DFU升级OTA升级方式详解(基于SDK开发例程)

    在我们开始前,默认你已经安装好了一些基础工具,如nrfutil,如果你没有安装过请根据官方中文博客去安装好这些基础工具,连接如下:Nordic nRF5 SDK开发环境搭建(nRF51/nRF52芯片 ...

  6. 【原创】我所理解的自动更新-APP发布与后台发布

    发布后台 创建渠道:添加新的渠道,设置渠道名称,自动生成渠道id.    查看渠道:查看渠道基本信息,渠道app版本号,资源版本号,是否开启更新.    创建/更新APP:选择打包ios,androi ...

  7. 爆炸!iOS资源大礼包(持续更新...)

    今天为大家整理了一些关于iOS学习的干货,献给正在奋斗的你们,首先声明一下,在整理的过程中参考了大量的博客和文章,知识的分享终究会增值,在此表示感谢,希望这篇文章给大家带来帮助. 基础部分: C语言教 ...

  8. JSPatch动态更新APP

    JSPatch,只需在项目中引入极小的引擎,就可以使用JavaScript调用任何Objective-C的原生接口,获得脚本语言的能力:动态更新APP,替换项目原生代码修复bug. 用途 是否有过这样 ...

  9. Dcloud课程4 如何进行APP接口开发

    Dcloud课程4 如何进行APP接口开发 一.总结 一句话总结:通过json或者xml. 1.APP如何进行通信? 通过在地址上接参数指明传递的数据的类型.而数据传递的类型一般是XML和json. ...

随机推荐

  1. Jenkins使用TFS部署

    之前发表过一篇Jenkins的文章 使用Jenkins部署.Net应用程序 里面是使用GIT做的版本管理 今天更新下使用TFS做版本管理 首先在插件管理中搜索tfs,我这里因为已经装了,所以在已安装列 ...

  2. Installation failed with message...It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.

    错误弹窗如图: Installation failed with message Failed to finalize session: INSTALL_FAILED_TEST_ONLY:instal ...

  3. win10上Tensorflow的安装教程

    这几天打算自己入门学习机器学习的内容,首先要安装Tensorflow. 自己捣鼓了几天才捣鼓出来.可能真的是比较笨orz 现在试试写一个教程,希望可以帮到迷路滴孩子们! 大体地说四步: 安装pytho ...

  4. Visual Studio最好用的快捷键(你最喜欢哪个)

    每次在网上搜关于VS有哪些常用快捷键的时候,出来的永远是一串长的不能再长的列表,完全没体现出“常用”二字,每次看完前面几个就看不下去了,相信大家都 有这种感觉.其实我们平时用的真的只有很少的一部分,借 ...

  5. 异常处理:net.sf.cglib.beans.BulkBeanException

    今天下午由于各种开会,断断续续写得代码,单元测试的时候,老是报如题的错误,后来查阅资料,发现原来是从数据库查询的值如果为空,则对应实体类执行set方法会赋值null给对应属性值,但是我当时的几个值偏偏 ...

  6. Solidity类型转换

    类型转换,是一个十分重要,常用的手段. 一.隐式转换 隐式转换,就是当一个运算符能支持不同类型,编译器会隐式的尝试将一个操作数的类型,转为另一个操作数的类型,赋值同理. 条件是:值类型间的互相转换只要 ...

  7. JavaScript时间操作工具类

    /** * 时间操作工具类 * * @author zwq * */ var TimeFrameUtil = { /** * 格式化日期 * @param date {Date} 日期 * @para ...

  8. 网络之NSURLSession

    NSUrlSession参考的这篇博客,自己也调试了它的代码:http://www.it165.net/pro/html/201406/15223.html ,对NSUrlSession还不太理解,先 ...

  9. 并发编程—— LinkedTransferQueue

    1. 前言 Java 中总的算起来有 8 种阻塞队列. 我们分析了: 并发编程之 SynchronousQueue 核心源码分析 并发编程之 ConcurrentLinkedQueue 源码剖析 并发 ...

  10. 并发编程之 CyclicBarrier 源码分析

    前言 在之前的介绍 CountDownLatch 的文章中,CountDown 可以实现多个线程协调,在所有指定线程完成后,主线程才执行任务. 但是,CountDownLatch 有个缺陷,这点 JD ...