我尝试在app页面的onShow里用evalJs,但是一直报错,报了bug,没人理。搜了社区,以前也有人报过同样的问题,也是没人理。
只能尝试能不能在网页里实现
- 发布:2024-01-11 09:21
- 更新:2024-01-11 09:45
- 阅读:269
套马杆的套子 - 没有解决不了的问题,只有解决不完的问题
是想要监听么?这样能满足你的要求不
webview
window.postMessage({
type: 'getOnShow'
});
app
onLoad() {
uni.$on('webview-message', this.handleWebviewMessage);
},
methods: {
handleWebviewMessage(data) {
if (data.type === 'getOnShow') {
// 在这里执行app页面的onShow相关逻辑
// ...
}
}
}
套马杆的套子 - 没有解决不了的问题,只有解决不完的问题
那就,app中
onShow() {
const webview = plus.webview.getWebviewById('webviewId'); // 根据webview id获取webview对象
webview.postMessage({
type: 'onShow'
});
}
webview
window.addEventListener('message', function(event) {
if (event.data.type === 'onShow') {
// 在这里执行webview页面的onShow相关逻辑
// ...
}
});
-
PiscDong (作者)
大佬,报错了
TypeError: webview.postMessage is not a function. (In 'webview.postMessage({2024-01-11 09:56
PiscDong (作者)
谢谢,我试试
我是想在webview加载得 网页里监听app的onShow,你这个代码好像没涉及到onShow啊
2024-01-11 09:36
DCloud_UNI_OttoJi
对,app 监听内部通信。两套代码是不能直接交流的,通过 emit/on 进行通信
2024-01-11 11:55
PiscDong (作者)
回复 DCloud_UNI_OttoJi: 大佬,有示例代码吗?我这边试过了好多,都没作用。app是uni-app中用vue做的页面,webview中加载的是vue做的网页
2024-01-11 15:59
PiscDong (作者)
回复 DCloud_UNI_OttoJi: 还有啊,大佬,为什么evalJs一直报错?
2024-01-11 16:18