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


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+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
Feb 23 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 Javascript
Javascript removeChild()删除节点及删除子节点的方法
Dec 27 Javascript
JQuery手速测试小游戏实现思路详解
Sep 20 Javascript
jQuery图片轮播实现并封装(一)
Dec 03 Javascript
js实现延迟加载的几种方法
Apr 24 Javascript
10个最优秀的Node.js MVC框架
Aug 24 Javascript
详解vue-cli本地环境API代理设置和解决跨域
Sep 05 Javascript
基于vue.js实现的分页
Mar 13 Javascript
微信小程序左滑删除功能开发案例详解
Nov 12 Javascript
jQuery实现轮播图效果demo
Jan 11 jQuery
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来实现网络服务
2009/09/15 PHP
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
php下载文件的代码示例
2012/06/29 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
js中的闭包实例展示
2018/11/01 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
Python函数嵌套实例
2014/09/23 Python
利用Python如何生成随机密码
2016/04/20 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
django2笔记之路由path语法的实现
2019/07/17 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
python中自带的三个装饰器的实现
2019/11/08 Python
python实现简易淘宝购物
2019/11/22 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
学校办公室主任职责
2013/12/27 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
高考励志标语
2014/06/05 职场文书
护林防火标语
2014/06/27 职场文书
小学生运动会报道稿
2014/09/12 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
优秀班主任主要事迹材料
2014/12/16 职场文书
黑白记忆观后感
2015/06/18 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL