五一节前上线了微信小程序分享到不同的群领红包活动,痛点:
1,用户授权,
部分接口需要获得用户授权同意后才能调用。此类接口调用时:
image.png
如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
如果用户已授权,可以直接调用接口;
如果用户已拒绝授权,则短期内不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。
对于小程序活动而言,用户拒绝之后再次提醒,再次取消则退出小程序
wepy.showModal({
title: '授权提示',
content: '小程序需要您的授权才能正常使用',
success: res => {
if (res.confirm) {
console.log('用户点击确定')
wepy.openSetting({
success: res => {
console.log('打开设置')
if (res.authSetting['scope.userInfo']) {
wepy.getUserInfo({
withCredentials: true,
success: (res) => {
// this.globalData.userInfo = res.userInfo;
resolve(res)
}
})
}
}
})
} else if (res.cancel) {
console.log('用户点击取消')
resolve(false) //退出小程序
}
}
})
2,unionId突然不能获取的踩坑记录
image.png3, onShareAppMessage转发分享
为了得到分享到群详细信息,需要添加
wx.showShareMenu({
withShareTicket: true
})
然后得到 res.shareTickets 再通过微信的wxGetshareinfo得到 群详细信息encryptedData和iv 转码后得到群的唯一openGId。通过判断群的唯一openGId。来判断分享到不同的群。
// 解密得到openGId
getopenGId(encryptedData, iv) {
let that = this
return new Promise((resolve, reject) => {
common.post({
url: '/xinyang/passport/weixindecrypt',
data: {
'sessionKey': that.session_key,
'encryptedData': encryptedData,
'iv': iv
},
success(res) {
resolve(res)
},
fail(res) {
reject(res)
}
})
})
}
4, js小坑 注意的地方。
JSON.parse('{"order_id":25150000000020075}')
控制台敲一敲。这是为啥?
网友评论