微信小程序 转发功能的实现


Posted in Javascript onAugust 04, 2017

微信小程序 转发功能的实现

1.当用户将小程序转发到任一群聊之后,可以获取到此次转发的 shareTicket

2.此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch() 或 App.onShow 获取到另一个 shareTicket

3.两步获取到的 shareTicket 均可通过 wx.getShareInfo() 接口可以获取到相同的转发信息。

onShareAppMessage(options)函数设置该页面的转发信息。

options参数说明:

from:转发事件来源。button:页面内转发按钮;menu:右上角转发菜单;
target:如果 from 值是 button,则 target 是触发这次转发事件的 button,否则为 undefined

自定义字段:

return {
  title: '转发', // 转发标题(默认:当前小程序名称)
  path: '/pages/index/index', // 转发路径(当前页面 path ),必须是以 / 开头的完整路径
  success(e) {
   // shareAppMessage: ok,
   // shareTickets 数组,每一项是一个 shareTicket ,对应一个转发对象
     // 需要在页面onLoad()事件中实现接口
     wx.showShareMenu({
      // 要求小程序返回分享目标信息
      withShareTicket: true 
     });
  },
  fail(e) {
   // shareAppMessage:fail cancel
   // shareAppMessage:fail(detail message) 
  },
  complete() { }
}

wx.showShareMenu(OBJECT) 带 shareTicket 的转发。

1.在SDK中与真机调试的过程中,都需要设withShareTicket为true,

2.否则在真机的调试过程中,即便选择了转发的群聊,也不会返回shareTicket

onLoad(e) {
  wx.showShareMenu({
   withShareTicket: true
  })
 }, onShow(e) {
  wx.showShareMenu({
   withShareTicket: true
  })
 },

wx.getShareInfo(OBJECT)获取转发详细信息

if (res.shareTickets) {
 // 获取转发详细信息
 wx.getShareInfo({
  shareTicket: res.shareTickets[0],
  success(res) {
   res.errMsg; // 错误信息
   res.encryptedData; // 解密后为一个 JSON 结构(openGId  群对当前小程序的唯一 ID)
   res.iv; // 加密算法的初始向量
  },
  fail() {},
  complete() {}
 });
}

小程序在群里被打开后,获取情景值和shareTicket

//app.js
App({
 onLaunch: function (ops) {
  if (ops.scene == 1044) {
   console.log(ops.shareTicket)
  }
 }
})

Bug & Tip

1.页面之间的参数传递,需要在onLoad()函数中接收,onShow()函数中无法接收。

2.获取群聊中被打开的小程序的shareTicket,需要在App.onLaunch() 或 App.onShow()。 页面的生命周期函数中是获取不到的。

3.将转发内容至单个用户时,是无法获取到shareTicket 。

以上就是微信小程序 转发功能 的实现,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
Nov 19 Javascript
javascript中setTimeout使用指南
Jul 26 Javascript
20分钟打造属于你的Bootstrap站点
Jul 27 Javascript
基本DOM节点操作
Jan 17 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
Angularjs修改密码的实例代码
May 26 Javascript
axios向后台传递数组作为参数的方法
Aug 11 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 Javascript
mpvue性能优化实战技巧(小结)
Apr 17 Javascript
用JS实现选项卡
Mar 23 Javascript
vue通过接口直接下载java生成好的Excel表格案例
Oct 26 Javascript
一篇文章学会Vue中间件管道
Jun 20 Vue.js
Vue计算属性的使用
Aug 04 #Javascript
JS+Ajax实现百度智能搜索框
Aug 04 #Javascript
vue插件vue-resource的使用笔记(小结)
Aug 04 #Javascript
分享Bootstrap简单表格、表单、登录页面
Aug 04 #Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 #Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 #jQuery
vue修改vue项目运行端口号的方法
Aug 04 #Javascript
You might like
PHP数字格式化
2006/12/06 PHP
个人站长制做网页常用的php代码
2007/03/03 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
python:接口间数据传递与调用方法
2018/12/17 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
学习经验交流会主持词
2014/04/01 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
暑期社会实践证明书
2014/11/17 职场文书
文明单位汇报材料
2014/12/24 职场文书
党风廉正建设责任书
2015/01/29 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js