收藏
回答

有没有官方开发人员,帮忙看下这个能不能实现?

目的:想通过web-view传值给小程序并且调用小程序内自己写的方法,能否实现(还是说web-view只能通过指定的那几个jdk方法来调用小程序提供的指定方法,不能调用自己的方法。)

回答关注问题邀请回答
收藏

1 个回答

  • 猛男陈阔
    猛男陈阔
    2020-05-09

    网页与小程序之间进行数据的交互有两部分:

    小程序→网页

    官网没有提供发送的接口,只能通过修改web-view的src属性,使用&来附加参数,并在网页中解析参数。

    这一点可以做到。只是这意味着小程序每次向网页传参,都要刷新一次网页。

    网页→小程序

    官方文档只提供了一种方式:在web-view中添加bindmessage属性,并绑定一个函数,用于监听网页发来的消息。在网页中引入jweixin-x.x.x.js,然后调用wx.miniProgram.postMessage()来向小程序发送数据。然而,实际上官方文档特意对bindmessage进行了说明:网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。也就是说,这唯一的一种通信方式,并不是按照常规的思路“网页向小程序发送数据,然后小程序监听到并执行回调”运作的,只有(小程序后退、组件销毁、分享)这三种情况下,bindmessage才会被触发并接收消息。所以,即使在网页中调用了wx.miniProgram.postMessage(),小程序也不会立即响应,bindmessage所绑定的函数不会执行。虽然网页和小程序之间即时传参无法实现,不过小程序可以通过web-view的src属性来切换网页,网页也可以通过wx.miniProgram.navigateTo()来切换小程序的页面。这些功能都是微信通过JSSDK为web-view所内嵌的网页提供的支持,但仅仅是提供了一部分JSSDK的功能,限制同样很多。

    2020-05-09
    有用 2
    回复 2
    • 半场滑翔暴扣
      半场滑翔暴扣
      2020-05-09
      那我是否可以做一个等待页面,再让路由跳转到等待页面,在等待页面监听bindmessage的信息,对信息做识别并作出相应反馈
      2020-05-09
      回复
    • 猛男陈阔
      猛男陈阔
      2020-05-09回复半场滑翔暴扣
      可以的 看你怎么来运用了
      2020-05-09
      1
      回复
登录 后发表内容
问题标签