DCloud_App_Array
DCloud_App_Array
  • 发布:2015-07-23 14:28
  • 更新:2015-07-23 14:28
  • 阅读:18073

关于HBuilder“制作移动App资源升级包...”生成的wgt包升级后会导致部分功能失效的问题

分类:HBuilder

问题现象

使用HBuilderuilder6.0.0及之前版本打包ipa/apk包,HBuilder升级到6.1.0及之后版本,通过“发行”->“制作移动App资源升级包...”生成应用升级包wgt文件后,或者是生成应用差量升级包(wgtu)。
在之前安装ipa/apk包中通过应用升级(差量升级)后就一直停留在启动页面,或者进入应用后功能无法使用。

问题原因分析

确认是因为升级HBuilder6.1.0版本后没有兼容以前的UI模块导致的问题,会影响plus.webview.、plus.nativeUI.、plus.navigator.* API的使用。
新版本中已经将UI模块拆分成Webview、NativeUI、Navigator三个独立的模块,默认生成的wgt文件中没有添加UI模块权限,导致老版本Runtime更新wgt后判断缺少UI模块权限而无法调用相关API。

解决方案

目前可通过在manifest.json文件的"permissions"节点下添加“UI”节点解决。
打开应用的manifest.json文件,切换到“代码视图”,在"permissions"节点下添加“UI”数据如下:

"UI": {  
    "description": "系统原生控件"  
}

注:
6.1.0之后版本已经去掉模块权限的判断逻辑,不会存在此问题。
6.2.0版本默认添加UI模块,确保向下的兼容性。

3 关注 分享
BoredApe 星空学者 Trust

要回复文章请先登录注册

1***@163.com

1***@163.com

回复 星空学者 :
你好,我也遇到这种情况,清除缓存之后,升级信息也被删除了,这种情况你解决了吗?
2017-01-05 14:50
无语

无语

回复 DCloud_App_Array :
如何设置才能在manifest.json中加上“UI”节点,加完之后点保存,切换到别的sheet页(如模块权限配置)之后在切换回来,之前追加的“UI”节点就不见了。
2015-08-03 09:48
无语

无语

回复 DCloud_App_Array :
而且manifest.json中是加不上UI的,加上后保存,当打资源包的时候manifest.json就没有UI了。
2015-07-31 09:34
无语

无语

而且manifest.json中是加不上UI的,加上后保存,当打资源包的时候manifest.json就没有UI了。
2015-07-31 08:58
DCloud_App_Array

DCloud_App_Array (作者)

回复 无语 :
请提交重现此问题的应用资源,并说明操作步骤,以便定位问题。
为了处理跟踪问题,建议新建ask。
2015-07-30 19:09
无语

无语

如果是打成apk或ipa包安装是没有问题的。
2015-07-30 13:57
无语

无语

为什么加上UI还是出错,wgt包升级成功后进入App变成的白板(Android首次可以进入再打开进入是白板,IOS无论首次还是再次进入都是白板)。求帮助。
2015-07-30 13:56
星空学者

星空学者

明白了,讲得很详细,谢谢
2015-07-28 15:35
DCloud_App_Array

DCloud_App_Array (作者)

回复 星空学者 :
这是Android平台系统的“清除数据”功能,5+ Runtime是安装Android的应用规范将所有数据都保存在应用沙盒目录中,使用“请求数据”功能后会把应用沙盒目录重置到安装apk时的状态,所以也就会把应用资源升级的所有资源重置,跟系统的重置类似,用户得接受这种状态,而应用在启动时应该可以判断这种状态再次提示用户升级。在实际运营中,应用资源升级和整包(apk/ipa)升级应该配合使用,对于小功能可以资源升级,而对于一些大的业务调整升级则应该采用整包更新的方式来避免用户操作“清除数据”重置应用。
2015-07-28 15:30
星空学者

星空学者

回复 DCloud_IOS_XTY :
现在你提供的这种升级方式,升级信息存在于缓存中,一旦清除应用管理里面的缓存,升级的信息也同样清除了。
2015-07-28 15:17