1.小程序默认是没有转发功能,除非你实现页面的onShareAppMessage函数
2.通过wx.showShareMenu(Object object)可以控制弹出分享的时候显示什么按钮,注意这个函数不是弹出分享窗口
3.参考官方api文档,设置为私密消息:
wx.updateShareMenu(Object object)
https://developers.weixin.qq.com/miniprogram/dev/api/share/wx.updateShareMenu.html
wx.updateShareMenu({
withShareTicket: true,
isPrivateMessage: true,
activityId: activityId,
})
其中activityId参考api文档从服务端获取
经过这一步后分享出去的小程序就都不能再二次转发。
4.验证私密消息
wx.authPrivateMessage(Object object)
https://developers.weixin.qq.com/miniprogram/dev/api/share/wx.authPrivateMessage.html
wx.authPrivateMessage({
shareTicket: 'xxxxxx',
success(res) {
console.log('authPrivateMessage success', res)
// res
// {
// errMsg: 'authPrivateMessage:ok'
// valid: true
// iv: 'xxxx',
// encryptedData: 'xxxxxx'
// }
},
fail(res) {
console.log('authPrivateMessage fail', res)
}
})
验证正确就会进入success,错误进入fail
问题:这里有个参数shareTicket,从哪里拿?
方法1:
App({
onLaunch(options) {
console.log("onLaunch",options)
}
})
app.js的onLaunch
方法2:
Object wx.getEnterOptionsSync()
Object wx.getEnterOptionsSync() | 微信开放文档
const xx = wx.getEnterOptionsSync();
console.log("xx",xx)
wx.authPrivateMessage({
shareTicket: xx.shareTicket,
success(res) {
console.log('authPrivateMessage success', res)
// res
// {
// errMsg: 'authPrivateMessage:ok'
// valid: true
// iv: 'xxxx',
// encryptedData: 'xxxxxx'
// }
},
fail(res) {
console.log('authPrivateMessage fail', res)
}
})