用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 查看内容

微信小程序判断是否转发到群聊

Rolan 2018-4-24 00:13

本文中提到的所有api的官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/share.html微信小程序在小程序内转发的方式有两个,分别是 和页面右上角的转发,两种转发都会调用 Page.onShareAppMessa ...

本文中提到的所有api的官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/share.html

微信小程序在小程序内转发的方式有两个,分别是 和页面右上角的转发,两种转发都会调用 Page.onShareAppMessage(options)。

要判断是否转发到群聊,需要使用用 wx.showShareMenu(OBJECT),并且参数withShareTicket为true。wx.showShareMenu({ withShareTicket: true})。转发成功后,Page.onShareAppMessage() 的回调会返回shareTickets,可以通过转发成功的回调判断是否转发到了群聊。 
如果需要获取转发的详细信息,可以使用 wx.getShareInfo(OBJECT),需要参数shareTicket,shareTicket 就是转发成功后的回调的 shareTicket 。wx.getShareInfo(OBJECT)的回调会返回errMsg(错误信息)、encryptedData(包括敏感数据在内的完整转发信息的加密数据)、iv(加密算法的初始向量)。

下面是是完整代码

  1. onShareAppMessage(res) {
  2. //转发时携带 shareTicket才能在回调中获取到shareTickets
  3. wx.showShareMenu({
  4. withShareTicket: true
  5. })
  6. return {
  7. title: '转发时显示的标题',
  8. path: '转发的页面路径',
  9. success: res => {
  10. console.log('--- 转发回调 ---', res);
  11. //onShareAppMessage回调的shareTickets,如果没有,就说明不是转发到群聊的
  12. console.log('--- shareTickets ---', res.shareTickets);
  13. //转发到群里的才会有shareTickets
  14. if (res.shareTickets && res.shareTickets[0]) {
  15. //获取转发的详细信息
  16. wx.getShareInfo({
  17. shareTicket: res.shareTickets[0],
  18. success: res => {
  19. console.log('--- 错误信息 ---', res.errMsg);
  20. console.log('--- 包括敏感数据在内的完整转发信息的加密数据 ---', res.encryptedData);
  21. console.log('--- 错误信息 ---', res.iv);
  22. },
  23. fail: error => {
  24. console.log('--- getShareInfo fail ---',error);
  25. }
  26. })
  27. }
  28. },
  29. fail: () => {
  30. console.log('--- 转发失败 ---', path);
  31. }
  32. }
  33. }

下面是转发到个人和群聊的日志打印

转发给个人时的日志 可以看到,转发给个人时,转发的回调只有errMsg。

转发到群聊时的日志 转发到群聊时,转发的回调多了shareTickets。所以,可以通过是否有shareTickets来判断是转发给个人还是群聊。

鲜花
鲜花
鸡蛋
鸡蛋 (1)

刚表态过的朋友 (1 人)

分享至 : QQ空间
收藏
原作者: 枝枝_zhizhi 来自: 简书

相关阅读