• 微信小程序转发微信小程序转发


    微信小程序转发涉及以下4个方法:

    1、Page.onShareAppMessage({})
    设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据
    2、wx.showSahreMenu()
    用户点击右上角后,显示“转发”按钮
    3、wx.hideShareMenu()
    隐藏转发按钮,无视 Page.onShareAppMessage({})
    4、wx.getShareInfo({})
    根据 shareTicket 获取已加密的群信息

    1.转发前配置
    在页面 onLoad 方法添加

    wx.showShareMenu({
        withShareTicket: true
    })

    withShareTicket 为 true 时,表示允许转发时是否携带 shareTicket。
    shareTicket 是获取转发目标群信息的票据,只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket 。

    shareTicket 有两个用途:

    • 用户主动转发后,获取转发到目标群群信息,对应上图UI。
    • 用户在群组中打开小程序,获取群组信息,对应上图 G1 群组中的用户。

    2.转发时获取群信息
    当某个小程序被转发到群组后,开发者想获取到转发目标群组信息,将用户和群组做某种绑定关系(openId + openGid)。

    onShareAppMessage: function () {
        return {
          title: '自定义转发标题',
          path: '/page/user?id=123',
          success: function(res) {
            var shareTickets = res.shareTickets;
            if (shareTickets.length == 0) {
                return false;
            }
            wx.getShareInfo({
                shareTicket: shareTickets[0],
                success: function(res){
                    var encryptedData = res.encryptedData;
                    var iv = res.iv;
                }
            })
          },
          fail: function(res) {
            // 转发失败
          }
        }
      }

    shareTickets 是一个数组,每一项是一个 shareTicket ,对应一个转发对象,转发给用户不会包含shareTicket。

    拿到 shareTicket 之后,使用 wx.getShareInfo({}) 方法传入 shareTicket 参数,wx.getShareInfo({}) 里回调函数中包含 已加密的群信息和 向量IV。

    3.转发到群组后打开
    用户将小程序转发到微信群组后,群成员打开小程序,通过 shareTicket,开发者就能将群成员和群组绑定起来(openId + openGid),基于群组关系,小程序有更多的应用场景,例如:王者荣耀群排行,摩拜单车。

    Page({
        onLoad: function(opt) {
            /** 判断场景值,1044 为转发场景,包含shareTicket 参数 */
            if (opt.scene == 1044) {
                wx.getShareInfo({
                    shareTicket: opt.shareTicket,
                    success: function(res){
                        var encryptedData = res.encryptedData;
                        var iv = res.iv;
                    }
                })
            }
        }
    })

    在群组中打开小程序,页面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判断 scene 是否为1044,如果不是则不包含 opt 中 shareTicket 参数。

  • 相关阅读:
    IOS 消息分发
    使用do{ } while(0)的好处
    BdAsyncTask学习
    用户体验学习笔记(工程中发现的PM常犯错误)
    Xcode 7 调试野指针利器 Address sanitizer
    Xcode磁盘空间大清理
    xcode:关于Other Linker Flags
    mac 下打开多个Eclipse
    shape 代码生成器
    查看APK方法数的工具dex-method-counts
  • 原文地址:https://www.cnblogs.com/hzp-tt/p/8989420.html
Copyright © 2020-2023  润新知