现象:
使用3.1.2配置使用正常
使用3.1.13+版本,安装应用后的隐私弹窗,点击其中的链接跳到空白页面,复制网址提示复制null
通过与3.1.2版本互换插件,将问题定位到lib.5plus.base-release.aar上
奇怪的是这个问题在as自带的模拟器上不存在,在真机上才存在
原因:
因为我们应用使用的是uniapp范例中的文案,所以一直以为是我们在strings.xml中的配置项目与新版插件不兼容导致
实际上本质是,我们的配置项目根本就没生效,看到的是lib.5plus.base-release.aar中携带的默认值,变更文案后可以发现模拟器中变更了,但是真机还是原样
造成原因是:我们的string配置按照demo写在了res/values/下,
3.1.2的lib.5plus.base-release.aar自带字符串资源只有values(中文) 和values-en(英文),编译时资源合并顺序最后写入自定义配置,可以生效。
而新版的lib.5plus.base-release.aar自带字符串资源有values(默认,英文?) 和values-en(英文),以及values-zh(中文)。
因为values的定义发生了变化,而离线打包sdk中demo使用的还是values,因此我们配置的项目,只会覆盖value的默认项目,并不会覆盖values-zh
而实际上真机因为是中文系统会默认使用values-zh,导致使用的字符串dcloud_privacy_prompt_message还是lib.5plus.base-release.aar中的默认值,其中对应的href是"",自然到了浏览器就是空值
解决办法:
res下的values目录复制一份更名为values-zh
这个问题应该是官方想要增强多语言的支持能力修订了相关的定义导致。
因为过于诡异,而且更诡异的是社区完全看不到类似的问题,特此提交一个说明,希望能够帮到有需要的人。
也希望官方能够在后续处理此类问题时兼顾考虑demo和相关配置文档的修订。
1 个评论
要回复文章请先登录或注册
s***@jztx.com