公司要求公司的小程序要有转发功能,求大神指点一二,跪谢!!!

  • • 发表于 7年前
  • • 作者 你眉毛轻皱我无法袖手旁观
  • • 5246 人浏览
  • • 8 条评论
  • • 最后编辑时间 7年前
  • • 来自 [项目需求]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

截图手机上点不开的页面
这是在网上搜索到的相关资料,可是我压根看不懂,求大神指点?
微信小程序 转发功能的实现
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 。

分享到:
8条评论
Ctrl+Enter
作者

你眉毛轻皱我无法袖手旁观

你眉毛轻皱我无法袖手旁观

APP:1 帖子:6 回复:74 积分:1672

已加入社区[2879]天

懒无止境,不进则退

作者详情》
Top