如果你出现了如下问题,且你的需求是需要保留分享的功能,但是不想用户支付出现这个问题,那么如下方案可以解决
例如:
原始A链接 http://***/index.html?activityId=5&staffId=503880
用户进入后授权登录后 就会授权后的B链接 http://***/index.html?activityId=5&staffId=503880&code=071R8ZZv3iSXIU221Y2w3Hd6Ia1R8ZZ6&state=STATE&token=32be19b687e24722a8a8cb32a52c1c11&appId=wx74f58b6ed049369c#/home
【看到了吗 链接上带来用户信息code 或 token 或 openId了, 你看看你的信息有没有】
如果问题出在点击右上角的分享给朋友
那么就是你在写调微信jdk时,里面的wx.config的写法为 shareUrl = window.localtion.href (看上面的授权后B链接,显然是错的,那么就有了其它用户的信息),
针对这种情况的话,可以用 shareUrl= window.location.href.split("#/")[0].split("&code=")[0]; 或者用写法 const shareUrl = `${location.origin}${location.pathname}?id=${common.getQueryString('id')}&activityId=${common.getQueryString('activityId')}`; 完美解决
如果点击右上角分享出去的url处理了,还是出现了支付账号不一致的问题
那么就是第二种问题了,就是用户直接点击了右上角出现的复制链接的按钮,然后把链接直接发给其他人,那么针对这个问题要如何解决呢,
wx.config({
debug: !1,
appId: e.appId,
timestamp: r,
nonceStr: n,
signature: s.toString(),
jsApiList: ['hideMenuItems'] // 第一步
}),
wx.ready(function() {
wx.hideMenuItems({ // 第二步
menuList: ["menuItem:copyUrl"] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮
});
});
【传播类】
发送给朋友: "menuItem:share:appMessage" 分享到朋友圈: "menuItem:share:timeline"
分享到QQ: "menuItem:share:qq" 分享到Weibo: "menuItem:share:weiboApp"
收藏: "menuItem:favorite" 分享到FB: "menuItem:share:facebook"
分享到 QQ 空间/menuItem:share:QZone
【保护类】
编辑标签: "menuItem:editTag" 删除: "menuItem:delete"
复制链接: "menuItem:copyUrl" 原网页: "menuItem:originPage"
阅读模式: "menuItem:readMode" 邮件: "menuItem:share:email"
在QQ浏览器中打开: "menuItem:openWithQQBrowser"
在Safari中打开: "menuItem:openWithSafari"
一些特殊公众号: "menuItem:share:brand"
技能拓展:隐藏全部的微信按钮的方案
在查找如何处理隐藏复制链接的时候,看到这种针对不要分享也不要复制链接,这里也放出来供参考吧
function onBridgeReady() {
WeixinJSBridge.call('hideOptionMenu');
}
if (typeof WeixinJSBridge == "undefined") {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
} else {
onBridgeReady();
}
源文件放置位置