|
本帖最后由 一路有你 于 2020-8-6 18:27 编辑
在 小米快应用客服 的帮助下,我终于找到了问题所在:我之前没有加 web 组件的 trustedurl 属性!
其实如果是一般网页,那么web组件的 trustedurl 会默认添加 src属性 的初始值,因此造成了只要没有网页内又跳转其它网页的情况,确实可以不显式的给 trustedurl 赋值,就能实现快应用和网页之间通信。但是这个偷懒,碰上 vue 的网页就被惩罚了!
实践证明:如果快应用的 web 组件加载的是 vue 的网页,那么必须显式的写好 trustedurl 属性并赋值,才能实现快应用和被加载网页间的双向通信。( 即便是快应用单向通信发消息给vue网页,也必须要写好 trustedurl 属性 )。
trustedurl 属性值该怎么写才合法呢?下面两个文档地址都有实际的代码示例,很明确:
https://github.com/quickappcn/sample/blob/master/src/scenario/web/postMessage/index.ux
https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickapp-component-web#h1-1575537532153
查找 trustedurl 关键字,再顺藤摸瓜就找到了。
此外,还可以是下面这样的写法:
trustedurl 的值为数组: [/^http:\/\/xxx.xxx.xxx.xxx/, /^https:\/\/xxx.xxx.xxx.xxx/]
( 上面的 xxx.xxx.xxx.xxx 是被加载的网页和希望与快应用进行通信的网页地址的实际域名,比如类似:sports.sina.com.cn )
总结:如果希望在快应用和被加载进来的网页之间进行双向通信,那不论加载的是一般网页,还是用 vue 制作的网页,以及其它网页:
一定要使用 trustedurl 属性!
一定要使用 trustedurl 属性!
一定要使用 trustedurl 属性!
重要的话说三遍! 最后感谢 小米快应用客服 的帮助!
|
|