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


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 相关文章推荐
jquery png 透明解决方案(推荐)
Aug 21 Javascript
jQuery prev ~ siblings选择器使用介绍
Aug 09 Javascript
Javascript基础教程之break和continue语句
Jan 18 Javascript
详解JavaScript中Hash Map映射结构的实现
May 21 Javascript
Jquery实现上下移动和排序代码
Oct 17 Javascript
探讨Vue.js的组件和模板
Oct 27 Javascript
JS+canvas画一个圆锥实例代码
Dec 13 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
Mar 28 jQuery
java实现单链表增删改查的实例代码详解
Aug 30 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
Feb 19 Javascript
详解JavaScript 高阶函数
Sep 14 Javascript
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中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
Python中的map、reduce和filter浅析
2014/04/26 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
介绍一下grep命令的使用
2015/06/12 面试题
食品采购员岗位职责
2014/04/14 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
新郎答谢词
2015/01/04 职场文书
结婚仪式主持词
2015/06/29 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
企业团队精神心得体会
2016/01/19 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python