一、首先讲解一下需要用到的API

  • Page.onShareAppMessage()
    设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据
  • wx.showSahreMenu()
    显示当前页面的转发按钮
  • wx.hideShareMenu()
    隐藏转发按钮
  • wx.getShareInfo()
    获取转发详细信息

二、流程

转发前配置—->转发时—->转发到群组后打开—->二次转发

(1)页面内按钮转发

<button type="warn" open-type="share" data-tag="share1" id="btn_share1">发送微信给好友</button>

(2)或者右上角转发

三、代码实现

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

 wx.showShareMenu({withShareTicket: true})

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

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

 onShareAppMessage:function(options){let that = this;return {title:'我是转发的东西',      //'此为转发页面所显示的标题'desc: '江湖救急,还请贵人伸手相助啊!',      //'此为转发页面的描述性文字'path:'pages/api/api',        //'此为转发给微信好友或微信群后,对方点击后进入的页面链接,可以根据自己的需求添加参数'success:function(res){let shareTickets = '' ;'//转发到群 会有res.shareTickets  转发到个人无res.shareTickets'let shareTickets = res.shareTicketsif (shareTickets && shareTickets.length===0){return false;}wx.getShareInfo({shareTicket:shareTicket[0],success:function(res){let encryptedData = res.encryptedDatalet iv = res.iv}})}}}

shareTickets是一个数组,每一项是一个shareTickets,对应一个转发对象,转发给用户不会包含shareTickets
拿到shareTickets后,使用wx.getShareInfo()获取已经加密的encryptedData用户信息和向量IV

(3)转发到群组后打开 
用户将小程序转发到微信群组后,群成员打开小程序,通过 shareTicket,开发者就能将群成员和群组绑定起来(openId + openGid).

 Page({onLoad: function(opt) {'/** 判断场景值,1044 为转发场景,包含shareTicket 参数 在群组中打开小程序,页面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判断 scene 是否为1044,如果不是则不包含 opt 中 shareTicket 参数*/'if (opt.scene == 1044) {wx.getShareInfo({shareTicket: opt.shareTicket,success: function(res){var encryptedData = res.encryptedData;var iv = res.iv;}})}}
})

(4)二次转发
二次转发重复前3个步骤 

微信小程序转发功能详解相关推荐

  1. 微信小程序退款功能(详解完整)

    微信小程序支付->退款 微信小程序退款的时候如果是线上,就会涉及到Linux读取打包后项目存放文件路径失败问题,获取不到其中的微信退款证书,在这里就需要使用流的方式进行读取路径,经大佬指点才最终 ...

  2. php小程序地图处理,微信小程序 地图map详解及简单实例

    微信小程序 地图map 微信小程序map 地图属性名类型默认值说明longitudeNumber中心经度 latitudeNumber中心纬度 scaleNumber1缩放级别 markersArra ...

  3. 小程序向Java传值,微信小程序 页面传值详解

    微信小程序 页面传值详解 一. 跨页面传值. 1 . 用 navigator标签传值或 wx.navigator, 比如 这里将good_id=16 参数传入detail页面, 然后detail页面的 ...

  4. 微信小程序详解 php,微信小程序canvas基础详解

    canvas 元素用于在网页上绘制图形.HTML5 的 canvas 元素使用 JavaScript 在网页上绘制2D图像.本文主要和大家分享微信小程序canvas基础详解,希望能帮助到大家. 一.了 ...

  5. 微信小程序底部菜单详解

    微信小程序底部菜单详解 只需要在app.json里面修改配置,即可 {"pages":["pages/index/index","pages/logs ...

  6. 微信小程序详解 php,微信小程序列表开发详解

    本文主要和大家分享微信小程序列表开发详解,主要以代码的形式和大家分享,希望能帮助到大家. 一.知识点 (一).列表渲染 wx:for tip:wx:for="array"可以等于参 ...

  7. php 微信小程序 循环 多选,微信小程序 for 循环详解

    1,wx:for 在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件.默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item 事例如下: wx ...

  8. 微信小程序中 setData 详解

    虽互不曾谋面,但希望能和您成为笔尖下的朋友 以读书,技术,生活为主,偶尔撒点鸡汤 不作,不敷衍,意在真诚吐露,用心分享 点击左上方,可关注本刊 标星公众号(ID:itclanCoder) 如果不知道如 ...

  9. 【迷宫】地下迷宫游戏-微信小程序开发流程详解

    可曾记得,小时候上学路边买的透明铅笔盒,里面内嵌了一个小球,它用重力可从起点滚动到终点,对小朋友来说是感觉有趣的,在这个游戏的基础上,弄一款微信小程序的迷宫探索游戏试试,在不同关卡的迷宫中解开机关与谜 ...

  10. 微信小程序----手势锁详解

    设计思路流程图 1.全局常量 constructor(page,opts){// 初始化全局常量数据this.page = page;this.width = opts.width || 300;th ...

最新文章

  1. bamboo php,建立数据模型 — asbamboo php framework 文档
  2. “远程银行”优秀厂商认证!网易云信入选《区域性银行数字化厂商全景报告》...
  3. 程序员怎么面试求职?需要注意哪些因素?
  4. 上顿号符号_标点符号常见错误,读后涨知识了
  5. 126_Power BI中使用DAX计算股票RSI及股票均线相关
  6. Javascript中的form
  7. 【华为云技术分享】《跟唐老师学习云网络》 - Tcpdump大杀器抓包
  8. SQLite_Android
  9. vb用鼠标实现屏幕绘图
  10. 模型算法_生产建模型 算法控效率
  11. linux 安装vmware-tools详解
  12. python shell运行_Python 执行 Shell 命令
  13. GRADS软件初步学习
  14. cad导入进max线会乱_AutoCAD导入3dmax显示错乱(z轴归零).doc
  15. 名词用作动词举例_名词活用作动词
  16. pandas读取行列数据-详细介绍(连续不连续)
  17. HTML5期末大作业:动漫网站设计——千与千寻(10页) 含设计报告 HTML+CSS+JavaScript 学生动漫网页设计模板下载 海贼王大学生HTML网页制作作品 简单漫画网页设计成品 drea
  18. 网易云课程:深度学习与PyTorch入门实战
  19. [转]花了500学的seo课程教程笔记公布
  20. windows下qemu的安装与设置环境变量

热门文章

  1. vhdl变量除法_在VHDL中实现高精度快速除法
  2. ccs定义的函数不变色_ccs使用问题及解决办法
  3. python删除数组元素remove_python如何对数组删除元素
  4. word流程图怎么使箭头对齐_怎样在word中绘制流程图方框间距相同,排列整齐,箭头笔直...
  5. c语言汉字怎么编码,【C语言学习】C语言汉字编码。。。C语言中汉字的输入
  6. 读计算机网络得学五笔吗,电脑五笔打字难不难学?大约要学多久才可以掌握?
  7. python二元一次方程组用鸡兔同笼的思路来写编程_二元一次方程组的应用一鸡兔同笼问题...
  8. matlab的grid网格线属性设置,修改网格线密度
  9. html中单元格向下合并单元格,html中单元格合并 HTML 怎么给合并单元格设置宽度...
  10. 怎样才算是软件测试中搭建测试环境?