收藏
回答

打印invokeAppService postMessage?

小程序是这个: <WebView

      src={`https://mtest.cogleap.cn/m/quesionnaire?t=${Taro.getStorageSync(

        "CognitiveleapUser"

      )}&to=${to}&culture=${culture}`}

      onLoad={handleOnLoad}

      onMessage={handleMessage}

    />

web:

        wx.miniProgram.getEnv(function(res) {

          if (res.miniprogram) {

            Toast.loading(intl.formatMessage({ id: 'submitData' }), 1)

            alert(wx.miniProgram.postMessage({data: JSON.stringify(putData)}))

            wx.miniProgram.postMessage({data: JSON.stringify(putData)});

            wx.miniProgram.navigateBack({delta: 1})


            }

        } )

为啥handleMessage

不打印 但是打印invokeAppService postMessage {"answerContent":"xxxx}

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

3 个回答

  • Joseph
    Joseph
    2025-05-20
    使用 wx.miniProgram.postMessage 之前必须先调用一下wx.miniProgram.navigateBack(),并且 必须是先调用wx.miniProgram.navigateBack() 在发送消息,否则不生效。wx.miniProgram.postMessage(),是在特定时机(后退、销毁、分享)时候触发
    
    
    wx.miniProgram.navigateBack()
    
    wx.miniProgram.postMessage({
        data: { openid: '1111111111' }
    });
    
    2025-05-20
    有用
    回复 2
    • 寒夏
      寒夏
      2025-07-25
      先navigateBack后navigateBack都试了,没有效果啊,只有invokeAppService postMessage打印
      2025-07-25
      回复
    • 一方
      一方
      2025-08-08回复寒夏
      对,我也一样
      2025-08-08
      回复
  • zozo
    zozo
    2025-02-07

    不行呐,哥们

    2025-02-07
    有用
    回复 2
    • 史努比X
      史努比X
      2025-03-08
      哥们,我想我们遇到的问题是一样的,一定要重新仔细看看微信的文档
      2025-03-08
      回复
    • Adieu
      Adieu
      2025-04-03回复史努比X
      哥们你解决这个问题了吗 可以分享下吗
      2025-04-03
      回复
  • 惊鸿.
    惊鸿.
    2025-01-13

    家人们 我解决了 我的经验基于Taro 首先要绑定 <WebView

          src={xxx}`}

          onLoad={handleOnLoad}

          onMessage={handleMessage}

        />

      const handleMessage = (e) => {

        console.log(e, "55555");

        const receivedData = e.detail.data;

        console.log("Received data from WebView:", receivedData);

      };


    然后去你的web端或者h5的项目 npm装一个weixin-js-sdk 然后import wx from "weixin-js-sdk"; 再去wx.miniProgram.getEnv(function(res) {

              if (res.miniprogram) {

                wx.miniProgram.postMessage({data: JSON.stringify(xxx)});

                wx.miniProgram.navigateBack({delta: 1})


                }

            } ) 包成功




    2025-01-13
    有用
    回复 3
    • Adieu
      Adieu
      2025-04-02
      这个方法 我用了 不行 可以分享下吗 哥们
      2025-04-02
      回复
    • 惊鸿.
      惊鸿.
      2025-06-30回复Adieu
      不行吗 是在特定时机(后退、销毁、分享)时候触发  会不会你的时机不对
      2025-06-30
      回复
    • 寒夏
      寒夏
      2025-07-25回复惊鸿.
      只有invokeAppService postMessage,没有想要的打印,还有其他办法吗
      2025-07-25
      回复
登录 后发表内容