DCloud_App_Array
DCloud_App_Array
  • 发布:2015-03-15 23:28
  • 更新:5 天前
  • 阅读:179747

App资源在线升级更新

分类:HTML5+

注意:uni-app的热更新另见文档https://ask.dcloud.net.cn/article/35667

5+应用可使用以下方式进行升级

本文重点介绍5+应用资源独立升级,相对整包升级有以下优势:

  1. 无需重新提交应用市场审核更新,降低更新周期;
  2. 无需用户手动点击操作安装更新,优化用户体验;
  3. App资源相对整包体积更小,升级速度更快。

生成移动App资源升级包

  • 在HBuilder中编辑好新的移动App资源后,更新manifest.json的版本号
    原来版本是1.0,新版本修改为2.0:

  • 在HBuilder中生成升级包文件(wgt)
    菜单“发行” -> “制作移动App资源升级包”:

    在以下界面中通过“浏览”按钮选择保存路径,点击“确定”保存wgt文件:

  • 生成wgt后提交到手机可访问的网络地址
    App资源升级包下载地址:
    http://www.dcloud.io/docs/a/update/H5EF3C469.wgt
    为了模拟正常的升级检测流程,添加以下检测升级地址(返回最新版本号):
    http://demo.dcloud.net.cn/test/update/check.php

应用中检测更新资源

检测服务器上是否有新版本

  • 获取当前应用的版本号

    var wgtVer=null;  
    function plusReady(){  
    // ......  
    // 获取本地应用资源版本号  
    plus.runtime.getProperty(plus.runtime.appid,function(inf){  
        wgtVer=inf.version;  
        console.log("当前应用版本:"+wgtVer);  
    });  
    }  
    if(window.plus){  
    plusReady();  
    }else{  
    document.addEventListener('plusready',plusReady,false);  
    }  
  • 发起ajax请求检测是否有新版本

    // 检测更新  
    var checkUrl="http://demo.dcloud.net.cn/test/update/check.php";  
    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)){  
                    downWgt();  // 下载升级包  
                }else{  
                    plus.nativeUI.alert("无新版本可更新!");  
                }  
            }else{  
                console.log("检测更新失败!");  
                plus.nativeUI.alert("检测更新失败!");  
            }  
            break;  
            default:  
            break;  
        }  
    }  
    xhr.open('GET',checkUrl);  
    xhr.send();  
    }  

更新应用资源

  • 从服务器下载应用资源包(wgt文件)

    // 下载wgt文件  
    var wgtUrl="http://demo.dcloud.net.cn/test/update/H5EF3C469.wgt";  
    function downWgt(){  
    plus.nativeUI.showWaiting("下载wgt文件...");  
    plus.downloader.createDownload( wgtUrl, {filename:"_doc/update/"}, function(d,status){  
        if ( status == 200 ) {   
            console.log("下载wgt成功:"+d.filename);  
            installWgt(d.filename); // 安装wgt包  
        } else {  
            console.log("下载wgt失败!");  
            plus.nativeUI.alert("下载wgt失败!");  
        }  
        plus.nativeUI.closeWaiting();  
    }).start();  
    }  
  • 更新应用资源包(wgt文件)

    // 更新应用资源  
    function installWgt(path){  
    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);  
    });  
    }  

    wgt更新原生层是通过文件夹重命名方式实现,要么全部更新成功,要么更新失败,不会出现仅部分文件更新的情况

其它可改进的思路

  • 检测更新更好的模式应该是客户端提交本地应用资源版本号到升级服务器,由升级服务器判断是否可更新并且返回App升级资源包下载地址,避免在客户端写资源下载地址;
  • 更新时可以在后台静默下载,下次启动是直接更新,避免更新时打断用户操作。
  • 差量升级更新App资源,参考App资源在线差量升级更新

附件testUpdate.zip为测试移动App包

App store应用更新说明
应用资源更新肯定是违反apple政策的,但目前看起来,如果你不是很大的公司,apple不会理睬你。如果你是大公司,建议不要做整体更新,每次更新几个页面,也不要提示更新后需要重启,这样会安全点。

59 关注 分享
向着太阳 hilongjw andywang qinerg 逍涯 Mr丶Leo Julien Mars_Zhong Liosixer testemule syz 冰青虫 小米粒 dglhz Back Met magengshun green85 Amber0376 ffffffffff 淮风皖韵 ceolee2016@126.com 492064002@qq.com ROBOT10086 Lanman_Group 1394018128@qq.com wangqianjiao@126.com Trust Jose wuqingfeng234@163.com 314089026@qq.com 兔子x jtshushu 373565956@qq.com 193725904@qq.com 漠 dxTOP 公旦 mike_shaledian@msn.cn 马振丹 johnsontang2001@163.com yetsung@163.com maxin_w@sina.com CodeMenkey MR不靠谱 1649793117@qq.com 1512575740@qq.com Viccy 段长发 断想

要回复文章请先登录注册

347159411@qq.com

347159411@qq.com

将.wgt文件放到静态服务器,做接口,后端就根据一个文件,怎样判断这个文件的版本号啊
5 天前
it_dyh

it_dyh

回复 meifeng@worldflying.cn:
请问一下,离线打包现在有更新包吗?
2019-08-27 18:08
1052036428@qq.com

1052036428@qq.com

在写安卓app的时候
有一种情况
比如我1.0.1是apk整包更新的,但是这个时候用户不去更新,然后我服务器最新版本已经是1.0.2,这次是采用wgt更新的。
请问这种情况怎么处理?
是安装完apk之后再更新一次wgt吗
2019-08-19 15:40
守护

守护

Android设备在2.1.6.20190807-alpha下测试发现:
1、在app启动的时候检查更新是否需要更新(就是现实启动图的那个时候);
2、检查过称:下载wgt成功,更新成功(可以做提示标记安装成功),启动图结束后,发现资源以及更新了(不需要重启);
3、不需要重启也可以但是,版本号没有更新,导致每次启动时都要下载wgt更新包。

按照你上述的代码写的,请问怎么解决?是hbx版本的问题还是其它?
2019-08-12 18:04
小白的一天

小白的一天

大佬,wgt生成导出到本地了,也上传服务器了,请问上面的检测,更新代码要放在哪里呢
2019-08-10 10:30
wangzd369@163.com

wangzd369@163.com

uniapp下提示Uncaught ReferenceError: plus is not defined ,有遇到的吗?怎么解决的?
2019-08-07 19:05
wangzd369@163.com

wangzd369@163.com

uniapp下提示Uncaught ReferenceError: plus is not defined ,有遇到的吗?
2019-08-07 19:02
西洲

西洲

mark
2019-08-05 22:45
2501677271@qq.com

2501677271@qq.com

你好,我这边用2.0.1版本的打包在线升级包,安装完成后版本号没有改变,调试时提示manifest.json不存在,官方可以看一下吗
2019-07-04 10:39
garen.wei@foxmail.com

garen.wei@foxmail.com

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

wgtVer=inf.version;

console.log("当前应用版本:"+wgtVer);

}); 获取的版本号怎么是空的?都获取不到本地的版本号啊
2019-06-14 15:23
1637724435@qq.com

1637724435@qq.com

安卓更新完之后 图片加载不出来,打包成apk能加载出来
2019-06-10 09:20
18672760500@163.com

18672760500@163.com

回复 余红杰:
在外层写一个 let wgtVer = " "
2019-05-22 17:35
1073106661@qq.com

1073106661@qq.com

回复 460481266@qq.com:
open(d.filename); 这个表示打开本地的下载地址 ,手动安装吗
2019-05-15 09:53
1947521516@qq.com

1947521516@qq.com

回复 460481266@qq.com:
你这个只是下载 .wgt 文件
2019-05-05 16:25
小明子

小明子

热更新问题:
1、更新完成后,调用plus.runtime.restart重启应用,manifest.json文件中的版本号确实改变了,但是资源文件未生效。还是要退出应用进程再打开应用才能生效。
2、静态资源被解压到/Android/data/io.dcloud.HBuilder/apps/HBuilder/www目录中,对于用户都是透明的,不安全
3、更新策略问题,经测试发现,下载完成后开始安装,安装过程中是将更新前的www目录重命名为www_backup,然后解压下载的wgt包为www目录,解压完成后,删除www_backup。策略问题是如果安装过程中用户退出进程了,www里面的资源不完整,应用就废了。因为下次打开应用读取的还是www里面的资源,而www资源已经不完整了。

个人意见:
1、对于问题1,这个提醒一下用户还能接受,最好还是类似王者荣耀一样更新后安装直接生效,不需要重启
2、对于问题2,存在一定的安全性问题,虽然文件都是只读,但是代码完全是裸奔,可以设计隐藏目录,然而安卓刷root了的话,也没什么用。
3、更新策略应该是先解压wgt到www_backup目录,解压完成后,重命名目录,将更新前的www命名为www_2,解压后的www_backup命名后www,最好是在命名或者解压过程中监听用户是否将应用切换到后台,若是在后台运行则中止执行。
重命名的过程毕竟很快,出现问题的概率还是小一点的。总比一上来就替换之前的www直接解压wgt到www目录中好一些。
2019-05-05 16:15
569249460@qq.com

569249460@qq.com

问下我司的app热更新后,原来下载过app的老用户是可以在线升级的,但是第一次下载的用户会报错误,可能是以前的版本等原因,目前不知道是什么原因,各位同学有没有遇到过呢
2019-04-24 16:59
余红杰

余红杰

plus.runtime.getProperty(plus.runtime.appid,function(inf){
wgtVer=inf.version;
console.log("当前应用版本:"+wgtVer);
}); 获取的版本号怎么是空的?
2019-04-22 15:18
jianfengjy@163.com

jianfengjy@163.com

没更新前默认打开的是_doc/html目录, 更新完5+会检测_doc/update目录打开吗
2019-02-15 14:18
苏颖

苏颖

请求相关技术援助:
hbuilder 移动APP在线升级时报错 not a zip archive
经过plus.runtime.install 调用之后打印出来的结果是:
{"code":10,"message":"Not a zip archive"}
2018-11-01 09:52
574820262@qq.com

574820262@qq.com

回复 公旦:
我也想知道这个问题
2018-10-09 10:32
1073106661@qq.com

1073106661@qq.com

回复 1067297247@qq.com:
解决了吗,同样的问题
2018-09-26 09:28
wenxinpan@yeah.net

wenxinpan@yeah.net

前阵子遇到一直升级失败的原因,后来发现是因为新的APP增加了新的权限。升级包是无法更新权限的,这种情况只能重新下载个有新权限的APP才行。
2018-07-09 16:31
460481266@qq.com

460481266@qq.com

按照这个方法试了下,是能检测更新,但是不知为何提示安装wgt失败,后来搞搞装成功了,但是更新后app确实是新版的了,但是app软件的版本号却还是升级前的版本号,没变。搜索了下说是这样升级只是更新了资源包,反正一大堆问题,这么多用户留言就看出来了每个人遇到的问题都不一样。。。不过我顺着这个思路,我改了一下下载方式,就是不安装wgt,只要有更新,用户点击检测更新后直接跳转到app下载页,这样就是让用户重新安装新版的安装包,不在使用wgt资源升级包,这样就可以完全避免出现上面很多人提到的各种问题。目前来说是一个很好的解决方法。

代码贴上来給各位分享一下:
<script type="text/javascript">
var wgtVer=null;
function plusReady(){
// Android处理返回键
plus.key.addEventListener('backbutton',function(){
if(confirm('确认退出?')){
plus.runtime.quit();
}
},false);
// 获取本地应用资源版本号
plus.runtime.getProperty(plus.runtime.appid,function(inf){
wgtVer=inf.version;
console.log("当前应用版本:"+wgtVer);
});
}
if(window.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
// 检测更新
var checkUrl="http://xxxx.com/app/check.php"; /*换成你自己的检测地址,很多小白们不知道check.php源代码里面有啥,其实啥也没有,只有需要更新的版本号,新建一个空包php文件 代码里只要写一个需要更新的版本号即可,例如:1.5 */
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)){
downWgt();
}else{
plus.nativeUI.alert("已是最新版,无需更新!");
}
}else{
console.log("检测失败");
plus.nativeUI.alert("检测失败!");
}
break;
default:
break;
}
}
xhr.open('GET',checkUrl);
xhr.send();
}
// 打开app下载页面
var Url="http://xxxx.com/app/index.html";/*换成你自己的下载页*/
function downWgt(){
plus.nativeUI.showWaiting("软件有更新,将跳转到下载页...");
plus.downloader.createDownload( Url, {filename:"wode.html"}, function(d,status){ /*wode.html可以默认不用改,留着就行了*/
if ( status == 200 ) {
console.log("成功:"+d.filename);
open(d.filename); // 打开下载地址
/*installWgt(d.filename);
} else {
console.log("打开下载页面失败!");
plus.nativeUI.alert("打开下载页面失败!");
}
plus.nativeUI.closeWaiting();
}).start();
}

</script>


html端:<a href="javascript:" onClick="checkUpdate()">点击更新</a>
2018-06-25 02:38
1395714445@qq.com

1395714445@qq.com

我遇到一个问题,app进行资源升级的时候,第一次资源升级
2018-06-20 11:17
449684471@qq.com

449684471@qq.com

回复 625782096@qq.com:
解决了么?我遇到这个问题了,能告诉下怎么解决吗?
2018-05-18 15:56
656599505@qq.com

656599505@qq.com

这是官方文档吗,最后一段:
App store应用更新说明
应用资源更新肯定是违反apple政策的,但目前看起来它也不管。你在官网案例那里下载Appstore版本的那些app,大多启动后都会提示更新,反正也都没下架。如果你不是很大的公司,apple不会理睬你。如果你是大公司,建议不要做整体更新,每次更新几个页面,也不要提示更新后需要重启,这样会安全点。
这说的也太不官方了吧!有点耍赖的感觉!
2018-05-15 09:54
549761150@qq.com

549761150@qq.com

一直下载wgt文件失败是什么鬼,MIME已经配置好了 但是在手机上面下载一直失败
2018-03-27 09:57
qdwps1995@163.com

qdwps1995@163.com

plus.nativeUI.showWaiting在installWgt这个方法中根本不起作用,导致安装的时候如果速度过慢,根本没有提示,就像死机一样,这个可以解决么
2018-03-23 15:43
维维

维维

回复 菜菜鸟:
Cannot call method 'start' of null 不是说 start 是 null,而是说你对一个 null 对象执行了一个 start 方法。你查查哪里叫了个 start,属于哪个对象的,就能找出出问题的地方了。欢迎加我 imyynu
2018-03-21 15:35
471146910@qq.com

471146910@qq.com

回复 bjhyn:
需要在服务器配置MIME
2018-03-13 16:47
1254201467@qq.com

1254201467@qq.com

if(wgtVer&&newVer&&(wgtVer!=newVer))这个判断这里,前面获得的是当前版本,后面获得的一直是null值,请问怎么破?
2018-03-13 11:37
菜菜鸟

菜菜鸟

不得不说这教程对于小白新手来说真的是一点都不懂,官方也不回答,加了无数个Hbuilder的群里面都是问问题的没有人解答,感觉真的能急死小白,可能对你们这些大佬来说小菜一碟简单的要死,但是对于初学者来说有时候可能一点小问题真的能急死人,我不知道有多少和我一样的初学者。 唉~~ 我更新的这个是按照上面教程来的,但是一直报这个错。Uncaught TypeError: Cannot call method 'start' of null 说start是null 真的晕啊
2018-03-13 09:43
够力度

够力度

回复 够力度:
这三段代码写进哪个文件,更新的H5EF3C469.wgt 这个文件名每次都是这个名字吗还是随意一个名字都行呢?
2018-02-28 18:47
够力度

够力度

建议升级重写一下教程,新手表示看不懂
2018-02-28 18:39
qdwps1995@163.com

qdwps1995@163.com

回复 x503:
现在这个问题解决了么?我的是js不更新
2018-02-24 08:44
1254201467@qq.com

1254201467@qq.com

求demo
2018-02-05 14:13
bjhyn

bjhyn

服务器放wgt文件下载不能下载啊 apk文件可以
2018-01-23 11:54
457355172@qq.com

457355172@qq.com

请问下,我的是M站生成的app,升级的代码应该放在哪个文件里面呢
2018-01-22 15:48
www.1172307121@qq.com

www.1172307121@qq.com

回复 vin.zeng@163.com:
同问啊~~~~
2018-01-17 18:25
www.1172307121@qq.com

www.1172307121@qq.com

回复 vin.zeng@163.com:
你怎么解决的呀,我也是这个问题
2018-01-17 17:16
a0147520

a0147520

回复 Anderstang:
我的是js不更新
2017-12-28 11:08
公旦

公旦

如下问题:
------------------
当前版本:1.1
最新版本:1.3
升级后,1.2版本的更新是否也打上去了?
也就是1.3wgt升级包包含1.2吗?
2017-12-26 17:17
meifeng@worldflying.cn

meifeng@worldflying.cn

离线打包能有更新包更新不
2017-11-30 14:14
秘密

秘密

path = _downloads/2170ba56-af02-4b44-b8b0-8c4761cbdf7f.wgt at js/update.js:159
安装失败:WGTU安装包中www目录下manifest.json不存在 at js/update.js:181
2017-11-09 17:49
vin.zeng@163.com

vin.zeng@163.com

最近几次做的升级包, 都会提示 file too short to be a zip file, 然后无法升级, 检查后台这个升级包是可以用 ZIP 文件工具打开的, 这个应该怎么解决?
2017-10-30 18:05
x503

x503

应用资源更新安装重启后,还需要手动杀掉进程才能更新到js和css,求问这个要怎么处理,很急求问各种知道的!!!
2017-10-15 19:59
jw.williamjun@gmail.com

jw.williamjun@gmail.com

HBuilder 8.1.3.201705121932 IOS 自动升级正常, 安卓 自动更新失败, 回调返回的 err 是 null, 没有任何错误信息!
2017-06-06 22:45
ali

ali

PHP端 代码往哪 可以下载啊
2017-06-04 19:17
284057211@qq.com

284057211@qq.com

请问这个filename的路径是啥
2017-05-27 13:14
782041896@qq.com

782041896@qq.com

mark
2017-05-17 16:53
909018562@qq.com

909018562@qq.com

回复 15033907662@163.com:
plus.runtime.getProperty获取的是资源更新包更新后的版本号。plus.runtime.version获取的是打包时的版本号。初始的时候两者的版本号是一样。而后你用wgt更新包更新了app,plus.runtime.getProperty获取的就是新版本号。plus.runtime.version获取的依然是旧的。除非你重新打包APK
2017-05-14 23:30
3277076046@qq.com

3277076046@qq.com

回复 米虫:
好像没搞定,我都忘记了。。。。
2017-05-09 19:40
米虫

米虫

回复 3277076046@qq.com:
麻烦问下你这个问题怎么解决的?
2017-05-09 18:31
yongsh220@gmail.com

yongsh220@gmail.com

回复 topSWdept:
我也遇到了这个问题,现已解决.
一开始以为是自己生成的&quot;资源升级包&quot;有问题,重新生成后还是不行,最后发现是&quot;资源升级包&quot;在升级服务器上放错了位置,导致APP请求的到升级包是旧的,当然里面的版本号不对了.这里有个方法可以直观查看是否是这方面的错误,就是查看手机上下载下来的升级包(用文件管理器搜索升级包文件名,在手机内部存储中)中版本号到底是否正确: 将该文件传到电脑上,加上.rar扩展名可直接打开查看里面的内容 ,可看到manifest.json中version是否正确就OK了.
2017-04-19 14:55
梁liang

梁liang

回复 吴俊川:
大神,你的离线包更新做好了吗?求教方法
2017-04-17 10:03
梁liang

梁liang

回复 DCloud_App_Array:
ios离线打的包怎么做升级啊。我把离线包的文件放在hbuider里面直接成web类型的工程了。生成升级包的选项直接置灰不可选了。急求
2017-04-17 09:13
15033907662@163.com

15033907662@163.com

回复 文殳哥:
获取版本的问题,用plus.runtime.getProperty来获取version这是当前运行的版本号,用plus.runtime.version获取的一直是APP版本号
2017-04-11 16:41
JK_9876

JK_9876

你好!资源升级包可以替换启动图片(splash)吗?我原来的splash在包里面,替换为新的图片后客户端安装升级包后还是原来的,请问如何处理,谢谢!
2017-03-22 11:02
white

white

按照这个上面写的,获取不到wgtVer,在管理终端上显示是null。请问怎么解决?
2017-02-21 10:47
625782096@qq.com

625782096@qq.com

回复 h小明:
你的怎么好的啊?我的一直提示缺少maps
2017-02-10 14:55
1067297247@qq.com

1067297247@qq.com

回复 1067297247@qq.com:
补充一下是应用资源升级方式
2017-02-04 17:56
1067297247@qq.com

1067297247@qq.com

Android 能更新成功 但是ios在下载更新包阶段就一直卡着 下载不成功。。
function downWgt(wgtUrl){
plus.nativeUI.showWaiting("下载更新包...");
console.log(wgtUrl);
plus.downloader.createDownload( wgtUrl, {filename:"_doc/update/",timeout:10}, function(d,status){
if ( status == 200 ) {
console.log("下载更新包成功:"+d.filename);
installWgt(d.filename); // 安装wgt包
} else {
console.log("下载更新包失败!");
plus.nativeUI.alert("下载更新包失败!");
}
plus.nativeUI.closeWaiting();
}).start();
}
就卡在这个函数的处理上了。。。有遇到相同情况的吗?
2017-02-04 17:54
331319769@qq.com

331319769@qq.com

dcloud的官方人员真是欠骂,做个教程也不做全,别人问问题了也不认真回答,上面的升级方法,自定义插件报找不到模块你们自己试过吗?离线打包自己写了原生android代码的能升级吗?说白了上面的升级方法只适用于包含官方插件的app,现在用官方的那些插件很难满足用户的所有需求吧,用户自己个性化需求肯定是自己通过插件的形式去实现的,这样一来这个升级难道没有必要做个带第三方插件的升级教程?不能升的话也请注明好不好?
2017-01-28 21:02
3277076046@qq.com

3277076046@qq.com

我按照官方的update.js整包更新,安装包下载完成后点击安装没问题,点击取消停止安装但是马上会弹出安装成功,plus.runtime.install没有判断点击的是哪个嘛??????求解
2017-01-09 14:41
3277076046@qq.com

3277076046@qq.com

下载之后再安装界面,点击取消还是执行onSuccess方法里面的代码??这是怎么回事?
2017-01-09 11:23
十二1952

十二1952

写完全啊,check.php这个文件是什么内容?新手看的纠结 看了 是蒙蒙的 知道对比版本 但是具体的操作还是不很了解
2016-12-14 16:12
Echil

Echil

wgt文件包,安装完之后。如何删除啊?越积越多
2016-12-09 14:20
unliuhuan@gmail.com

unliuhuan@gmail.com

应用中检测更新资源 中的代码应该写在哪里?????
应用中检测更新资源 中的代码应该写在哪里?????
应用中检测更新资源 中的代码应该写在哪里?????
2016-12-08 11:54
MRS

MRS

回复 andywang:
ios更新的时候需要再次审核么?
2016-12-06 21:04
MRS

MRS

回复 hyhezhen:
这个你试了没有,需要再次审核么?
2016-12-06 21:02
MRS

MRS

回复 DCloud_App_Array:
这个你试了没有,需要再次审核么?
2016-12-06 21:02
MRS

MRS

这个升级方式,和整包升级有什么区别么?只差一个不需要重新安装么?
2016-12-06 16:06
l18274950624@126.com

l18274950624@126.com

写完全啊,check.php这个文件是什么内容?新手看的纠结
2016-11-21 14:55
447099719@qq.com

447099719@qq.com

mark
2016-11-17 14:53
Eason

Eason

版本号有问题的同学可以看下这篇文章:
http://ask.dcloud.net.cn/article/1019
2016-11-15 16:31
黑色低调

黑色低调

回复 untme:
<?php
echo "2.0";
?>
官方的demo输出的就是字符串
2016-11-12 20:47
rr_qq560@163.com

rr_qq560@163.com

有知道怎么点击退出按钮退出ios应用的吗?Android可以退出,ios退出不了
2016-10-14 14:35
吴俊川

吴俊川

离线打包静态资源是放在asserts目录下的,asserts目录下的资源只能读取不能修改,请问一下这样的情况下有什么办法可以实现App资源在线更新吗
2016-10-05 16:25
untme

untme

php文件是怎么写的,里面返回的是数组还是字符串或者是json,谁能给个最简单的例子,类似这个教程上面的
2016-09-22 14:48
ccz

ccz

回复 blk:
+1请问 怎么解决的
2016-09-01 17:41
lhyh

lhyh

回复 老范被盗:
兄弟,问题解决了吗
2016-08-26 12:51
1779682373@qq.com

1779682373@qq.com

回复 时光可见:
你遇见过安装wgt文件失败,提示wgt安装包中的manifest.json文件的version版本不匹配的问题吗?
2016-08-24 16:11
1779682373@qq.com

1779682373@qq.com

回复 星空学者:
你这个解决了吗,我也遇见了
2016-08-24 14:57
时光可见

时光可见

这个必须mark下
2016-07-29 13:40
834155417@qq.com

834155417@qq.com

回复 h小明:
我也遇到了这个问题,请问你是怎么解决的
2016-07-25 10:36
tomatozq@163.com

tomatozq@163.com

我按照教程在mainfest.json添加了一个自定义插件plugintest后,再安装就提示缺少plugintest插件,这个插件的原生代码是写在anroid项目中,还有如果服务器的版本号<=webapp的版本号,会提示版本号不匹配。
2016-07-19 17:05
Charles

Charles

乐视2 Android6.0 ,跳转到浏览器下载了,无法执行回调函数了
2016-06-28 22:06
笑D

笑D

android webview方式集成,升级成功,强杀应用后重启又变回老版本了 怎么解决?谁知道官方QQ群是多少
2016-05-12 14:02
337806951@qq.com

337806951@qq.com

check.php 这个文件里面的内容是什么?
2016-04-24 11:14
Anderstang

Anderstang

wgt更新,如果有涉及到css文件的更新,ios的restart方法是不会生效的,还是老的css,必须杀进程重启才行,这样的用户体验实在太差,不知道是bug还是我的用法不对。如果是bug,请尽快修复,不然该功能完全没办法在生产上使用。
2016-04-09 22:59
LakNeumann

LakNeumann

回复 DCloud_App_Array:
同上, 资源更新之后 不管是 restart 还是 手动关闭再开, 都是旧版本号. 估计是资源安装的时候 manifest 文件没有替换?
2016-03-23 14:29
wang105

wang105

安装wgt文件失败[-1229]:HTML5+ Runtime缺少升级包manifest.json中配置的模块:nativeobj
这个问题怎么解决的?
2016-03-22 16:57
LakNeumann

LakNeumann

同上, 资源更新之后 不管是 restart 还是 手动关闭再开, 都是旧版本号. 估计是资源安装的时候 manifest 文件没有替换?
2016-03-17 14:42
blk

blk

回复 DCloud_App_Array:
重启了,版本还是老的
2016-03-15 15:12
blk

blk

同样问题,下载更新都没问题,更新之后重启应用,版本号还是老的.
谁有解
2016-03-15 15:10
异界来客

异界来客

回复 DCloud_App_Array:
重启了 还是没用。还是原来的 1.0 版本
我用 plus.runtime.version 应该是对的吧。
2016-03-10 08:39
DCloud_App_Array

DCloud_App_Array (作者)

回复 异界来客:
升级完成需要重启应用版本号才会更新
2016-03-08 15:32
异界来客

异界来客

回复 看官:
我也是这个问题。你解决了吗?
2016-03-08 13:47
异界来客

异界来客

请问一下。我升级后,原先的版本号没更新成最新的。这是怎么回事。
2016-03-08 10:52
异界来客

异界来客

获取当前版本号 不稳定。怎么解决
2016-03-04 11:17