骁骑
骁骑
  • 发布:2016-10-12 17:06
  • 更新:2019-10-18 03:02
  • 阅读:9123

Android平台Widget集成使用wgt/wgtu升级说明

分类:5+ SDK

用户在使用Widget集成时,使用plus.runtime.install API进行5+应用升级时会发现,方法回调安装成功,但是应用重启后加载的依然是老版本的Web应用。

这是因为会用Widget方式集成时调用 SDK.startWebApp 方法创建IApp对象时,需要传入WebApp的保存路径作为参数


一般情况下WebApp的资源是放在原生工程的assets/apps目录下,在生成apk安装包后这个目录下的文件是不能修改。 5+SDK在wgt/wgtu升级后会将资源释放到SD卡下,路径为 SD卡/android/data/[apk包名]/apps/[WebApp的ID]/www,所以在资源升级后调用SDK.startWebApp方法时传入的参数需要进行调整。

我们知道了问题的原因,下面我们来解决问题。
我们可以通过判断SD卡/android/data/[apk包名]/apps/[WebApp的ID]/www目录下是否有应用的mainfest.json文件存在的方式判断应用是否升级,如果该文件存在则设置该路径为应用启动路径,否则使用apk下的assets目录为启动路径

apk在卸载时SD卡/Android/data/[apk包名] 目录下的内容有可能不会被系统删除,为了保证 安装/升级 apk后,不会使用到以前遗留的WebApp资源,建议在WebApp启动前写文件保存当前apk的版本号,每次启动时判断保存的版本号与当前apk的版本号是否一致,如果不一致需要则删除 SD卡/android/data/[apk包名]/apps/[WebApp的ID]/www 目录下的全部内容,这样可以保证使用正确的WebApp资源,

7 关注 分享
赵梦欢 wenju Trust 吴俊川 向大海 7***@qq.com jzq84229

要回复文章请先登录注册

steven_he

steven_he

我也碰到Android assets wgt增量升级的问题,,这个解答很细
2019-10-18 03:02
7***@qq.com

7***@qq.com

回复 yeardlry :
我遇到的问题是,如果一直使用wgt升级,不会出现问题;一直使用整包升级也不会有问题;如果wgt升级一次,再用整包升级,版本号就是旧的。
2019-04-26 10:16
yeardlry

yeardlry

回复 yeardlry :
assets/data有一个文件叫做dcloud_control的文件 删掉之后就不会一直启动assets/app里面的程序了
2019-04-18 11:40
yeardlry

yeardlry

把web解压到 SD卡/android/data/[apk包名]/apps/找到释放的相关文件,然后对SDK.startWebApp的参数进行修正后 还是执行的是assets里面的程序。传入到SDK.startWebApp里面的appBasePath已经是sd卡上对应的路径了
2019-04-18 11:27
七号座先生

七号座先生

我也尝试了,升级WGT文件之后,并没有在 SD卡/android/data/[apk包名]/apps/找到释放的相关文件。
2018-04-10 11:09
4***@qq.com

4***@qq.com

我使用runtime.install安装后,并没有在SDPath/Android/data/appid/apps下发现有安装后的文件,请问这是怎么回事儿。SDK使用的是最新的,andriod版本为6.0
2017-09-28 11:16
k***@126.com

k***@126.com

检测删除那段有么。。。。
2017-01-06 10:21
吴俊川

吴俊川

棒!
2016-10-14 20:13