这个可以实现吗 比如说我想在webview渲染出来的H5里面对APP的路由进行修改
m***@163.com
- 发布:2023-02-22 17:08
- 更新:2023-02-22 17:27
- 阅读:827
BoredApe - 有问题就会有答案。
可以。web-view
通过postMessage
向app
发送消息。app
通过evalJS
向web-view
注入回调.
web-view中:
uni.webView.postMessage({
data: {
type: '__JSBridge',
action: 'getCamera',
callBackFn: 'cameraCallBack'
}
})
window.cameraCallBack = function(e){
console.log('ecameraCallBack boredape:>>>>>>>>>>>> todo_tmFilename-:todo_tmLineNumber', e);
}
APP:
<web-view src="http://192.168.0.111:8080/#/" @onPostMessage="handlePostMsg" @message="handlePostMsg"></web-view>
handlePostMsg(bridgeData){
const {
detail: { data: [{ action, type, params, callBackFn }] },
} = bridgeData;
if (type === '__JSBridge') {
const pages = getCurrentPages();
const childrenPage = pages[pages.length - 1].$getAppWebview().children()[0];
uni.chooseImage({
success({tempFilePaths}) {
// 向webview注入回调
page.evalJS(`${callBackFn}('${tempFilePaths}')`)
}
})
}
}
8***@qq.com
pages[pages.length - 1].$getAppWebview().children() 这里获取就是 报错没有length ,或者$refs.webview 是个{},有小程序向webview通信的方法吗
2023-09-13 15:56
都广野
回复 8***@qq.com: 想问一下你最后解决了吗
2024-07-28 10:37