微信分享开发中出现的问题
这里就只说说会让人混淆的地方
绑定域名
绑定位置:登录【微信公众平台】-> 【公众号设置】-> 【功能设置】,可看到JS安全域名编辑选项。
假设服务放在【h5.mimeay.cc】,则相应绑定的安全域名为【h5.mimeay.cc】
以前是可以绑定端口的,但是现在微信取消了有端口的绑定。
关于jsapi_ticket 以及其依赖的access_token
jsapi_ticket是公众号用于调用微信JS接口的临时票据,也要做一下缓存,要注意的地方:
- 签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。【也就是后端生成noncestr,timestamp,签名后,也要把这两个字段的值渲染到页面】
- 签名用的url必须是调用JS接口页面的完整URL【如果访问的是http://h5.mimeay.cc/test,则前面的url也应该为http://h5.mimeay.cc/test】
调试过程中可能会出现的提示
-
invalid url domain : 一般就是你访问的域名对不上js安全域名
-
invalid signature : 除了nonceStr,timestamp, url这一块地方是蛮容易出错的,切记url是动态的,用户访问的地址,就是你前面的地址,一点差别都不能有
-
遇到的第三个问题,就是前面两个都解决了,但是分享的时候,却没有按照我既定的分享文案和地址去分享。因为我需要页面一加载就调用 jsapi,因为 微信 那边肯定要先跑一趟 wx.config 验证,所以我还没验证完就 绑定 wx.share*** 的话会导致失败 , 所以要在分享的代码外层加 wx.ready
wx.ready(()=>{
// 分享
wx.onMenuShareTimeline({
title: '', // 分享标题
link: '', // 分享链接
imgUrl: '', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
//其他分享代码
});