前言
因项目需要,紧急接了一个h5宣传页的开发。开发完成后发现在微信中分享该页面的展示效果极差,临时决定引入微信js-sdk完成分享图文展示的效果。本以为只需要按部就班的一步步完成就好,没想到too young too simple,便开始了踩‘坑’之路。于是今天就记录一下遇到的一些问题。
先附上微信JS-SDK官方文档
遇到的一些问题
对于那些文档中提到的常见问题在这里就不赘述了。仅在这里记录下个人遇到的一些奇葩问题。希望大家可以多多指教,一起沟通。
-
经典抛错:invalid url domain。经过排查,发现我的H5网页的协议是https的,而可信域名秘钥放在http的对应域名下,导致报错。注:可信域名的绑定不要加协议,端口只能使用默认端口。 因为我们域名的80端口没开,导致耗费了大量时间去尝试其他端口能否使用(即网页url是其他端口,可信域名使用默认端口,后发现不可行),最后换了三个域名后,还是用的默认端口,可信域名使用域名+路径的方式。
-
ios中sdk不生效。 后从百度到的一个文档中发现该注意项:如果你的页面启用了https,务必引入 res.wx.qq.com/open/js/jwe… ,否则将无法在iOS9.0以上系统中成功使用JSSDK。
但是官方文档中并未说明,而只是说明了可引用https的sdk,如下: 在需要调用JS接口的页面引入如下JS文件,(支持https):res.wx.qq.com/open/js/jwe… (支持https)。所以两者综合,我引用https://res2.wx.qq.com/open/js/jweixin-1.6.0.js,这样就完美解决ios中sdk不生效的问题了。
-
安卓部分机型分享的自定义配置无效。因为看到sdk文档写了新的分享方法(如下)
自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)
wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.updateAppMessageShareData({ title: '', // 分享标题 desc: '', // 分享描述 link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: '', // 分享图标 success: function () { // 设置成功 } }) });自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0)
wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.updateTimelineShareData({ title: '', // 分享标题 link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: '', // 分享图标 success: function () { // 设置成功 } }) });但是发现这样子不行啊。于是经过万能的百度查到需要同时使用旧的sdk方法(如下)。而这两个方法在官方文档中明明标注了即将被废弃的...无力吐槽。
获取“分享到朋友圈”按钮点击状态及自定义分享内容接口(即将废弃)
wx.onMenuShareTimeline({ title: '', // 分享标题 link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: '', // 分享图标 success: function () { // 用户点击了分享后执行的回调函数 } }获取“分享给朋友”按钮点击状态及自定义分享内容接口(即将废弃)
wx.onMenuShareAppMessage({ title: '', // 分享标题 desc: '', // 分享描述 link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: '', // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户点击了分享后执行的回调函数 } }经过多机型测试,算是ok啦。
总结
初次做集成微信js-sdk的web,觉得文档还是要应该多看,但是不能迷信文档,还是要多尝试,多试验。才能发现不一样的精彩哦。初次发文章,希望可以和大家多多交流。