公司有一个项目需求,需要写一个全局函数给客户端调用,通过客户端传数据回来渲染到页面;
通过jsBridge方法,H5可以调用客户端(ios,android)的内部方法,同样,客户端也需要能调用H5页面里定义的js方法。
之前项目是通过jsBridge方法调的客户端方法(拍照,扫描二维码,选择通讯录等),由于客户端换了一个项目组的方法,他们只提供链接,当H5打开这个链接后,客户端调用全局函数,通过这个全局函数把值传回H5页面显示,这就需要我们项目提供全局函数给客户端调用。但是在vue里,所有的方法都是在组件内部声明的,也只能在组件内部调用。
在网上找到下面的方法:
mounted() {
// 将h5RenderData方法绑定到window下面,提供给外部调用
window['h5EditorRenderData'] = data => {
this.h5RenderData(data);
}
},
methods: {
h5RenderData(data) {
// 更改渲染页面的数据
}
}
使用中发现的问题:
回调函数中自定义的参数获取混乱,取到的不是当前传递的参数.
解决: 打开客户端URL前,先将参数存在本地存储,将参数通过回调返回值一起传回H5页面.
add