收藏
回答

使用webview 内嵌页面,发现bindmessage不触发事件?

<!--wxml.html-->
<web-view id='webview'  src="https://我的内嵌地址" bindmessage="handleMessage"></web-view>
<!--index.js-->
handleMessage(e){
    console.log('回调回来接受参数');// 没有执行到
    const { action, url } = e.detail.data[0];
    if (action === 'download') { // 下载
      wx.downloadFile({
        url: url,
        success(res) {
          console.log('文件下载成功:', res.tempFilePath);
        },
        fail(err) {
          console.error('文件下载失败:', err);
        }
      });
    } }


<!--网页端发送消息-->
window.wx.miniProgram.postMessage({
  data: { action: 'download', url: 'https://example.com/file.pdf' }
});
window.wx.miniProgram.navigateBack(); // 触发小程序页面后退
回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2025-03-20

    有触发条件

    2025-03-20
    有用
    回复 3
    • Bravecyl
      Bravecyl
      2025-03-20
      window.wx.miniProgram.navigateBack(); // 触发小程序页面后退
      加了后退操作的。而且不能实时监听吗,并不想离开当前页面。
      2025-03-20
      回复
    • 社区技术运营专员-Jahozheng
      社区技术运营专员-Jahozheng
      2025-03-21回复Bravecyl
      确定触发了吗
      2025-03-21
      回复
    • Bravecyl
      Bravecyl
      2025-03-21回复社区技术运营专员-Jahozheng
      就一个页面,调用了window.wx.miniProgram.navigateBack();这个方法,也不知道成功没。或者有没有其他更好的方法,我网页里的a标签点下载没反应,你们又不允许复制链接到浏览器操作。
      2025-03-21
      回复
登录 后发表内容