PiscDong
PiscDong
  • 发布:2024-01-11 09:21
  • 更新:2024-01-11 09:45
  • 阅读:119

app中webview加载的外部网页里,怎么获取app页面的onShow?

分类:uni-app

我尝试在app页面的onShow里用evalJs,但是一直报错,报了bug,没人理。搜了社区,以前也有人报过同样的问题,也是没人理。
只能尝试能不能在网页里实现

2024-01-11 09:21 负责人:无 分享
已邀请:
套马杆的套子

套马杆的套子 - 没有解决不了的问题,只有解决不完的问题

是想要监听么?这样能满足你的要求不
webview

window.postMessage({  
  type: 'getOnShow'  
});  

app

onLoad() {  
  uni.$on('webview-message', this.handleWebviewMessage);  
},  
methods: {  
  handleWebviewMessage(data) {  
    if (data.type === 'getOnShow') {  
      // 在这里执行app页面的onShow相关逻辑  
      // ...  
    }  
  }  
}
  • 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

套马杆的套子

套马杆的套子 - 没有解决不了的问题,只有解决不完的问题

那就,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相关逻辑  
    // ...  
  }  
});  

要回复问题请先登录注册