一、config配置里面 signature 一直无效:
这个原因真的是让我找了很久,前端的配置很简单,我就不多说了,主要是后端在生成签名的时候那个url有问题,必须是当前在微信公众号打开的页面的完整路径而且需要去掉#后面的部分。
二、好不容易后端生成签名对了,前端分享的路径又进不去了(分享此时已经成功了):
这个问题还好,微信分享的路径就用当前页面的路径就可以,但是当分享出去之后,页面后面的code会消失,所有必须得在页面进入的时候重新判断是否有code,如果没有的话需要跳转到微信授权的那个连接 let RedictUrl = https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7021ae838c24a7f94&redirect_uri=${encodeURIComponent(ua.split('?')[0], 'UTF-8')}&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect
window.location.href = RedictUrl将页面重定向获取code。
function isWeixinBrowser() {
var agent = navigator.userAgent.toLowerCase();
if (agent.match(/MicroMessenger/i) == "micromessenger") {
return true;
} else {
return false;
}
} 这个方法可以判断是否是在微信的内置浏览器里面
三、还有一点要注意的是如果分享链接是当前页面的url的话,在安卓手机上分享出去的会没有code和state,但是ios上还有,最好分享的时候只有问号前面的内容不要code,所以在页面中可以通过from这个参数来判断链接是否是来自分享。
然后到这里,微信分享就可以自己随意写了,这两个坑真的是困扰了我很久,所以在这里分享一下,还希望对大家有所帮助,如果有后续微信分享的问题,还会继续分享。