微信小程序私密消息
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)}})