收藏
回答

小程序可以web-view引入H5页面,然后静默授权获取公众号openid,传给小程序吗?

小程序怎么获取公众号openid



最后一次编辑于  11-08
回答关注问题邀请回答
收藏

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    11-08

    可以的

    使用web-view的bindmessage事件,假设web-view所在页面为web.js,要使用wx.navigateTo跳转到web页面
    web.wxml:

    <web-view bindmessage="bindmessage" src="H5地址"></web-view>

    ====================
    web.js:

    webviewMessage(e) {

        /* 当h5 执行 wx.miniProgram.navigateBack 返回了以后,在这里就会收到

        wx.miniProgram.postMessage 的数据,将openId存于Storage或getApp().globalData中即可,方便其他页面使用

       */

        console.log(e.detail.data[0].openId)

    }

    下面是【授权成功后的H5页面】的核心代码
    // 首先引入js

    <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>

    <script>

        // 执行下面这2句代码将授权成功获取openid传递为小程序

        wx.miniProgram.postMessage({ data:{openId: '此为授权获取到的openid' }})

        wx.miniProgram.navigateBack()

    </script>


    还有一种方法就是使用websoket,比较复杂一点,这里就不说了

    11-08
    赞同
    回复 6
    • 🔬King🍭dong🔭
      🔬King🍭dong🔭
      11-08
      你怎么实现的,微信静默授权那块,后台给我的接口,里边跳转到微信的服务器,然后后台能获得openid,但没法返回来给我
      11-08
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      11-09回复🔬King🍭dong🔭
      看上面
      11-09
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      11-09回复🔬King🍭dong🔭
      你用wx.miniProgram.reLaunch也可以的呀
      获取到公众号openId后就
      wx.miniProgram.reLaunch({
          url:'/pages/index/index?openId=xxxxxxxxxx'
      })
      在pages/index/index.js的onLoad(e)里,e.openId就能获取到公众号的openId
      11-09
      回复
    • 🔬King🍭dong🔭
      🔬King🍭dong🔭
      11-11
      我这个是刚进入首页引导,获取授权,后台给了一个地址跳转,然后去请求微信服务器,后台那边能接收到openid,但后台没法返给我
      11-11
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      11-11回复🔬King🍭dong🔭
      都说到这个份上了,还不会,我也帮不了你
      11-11
      回复
    查看更多(1)
问题标签