在开发网页的时候有时候需要用到微信的一些方法和接口来实现业务功能,比如分享接口,图像接口,音频接口,只能接口,设备信息,地理位置,界面操作,微信扫一扫等众多微信集成好的功能,使用的时候也非常的简单,文档也说的非常的详细了
需要注意:所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。
这里的一些参数是需要后端去提供的,然后打开的网页也是对应的服务器上的网页去注入权限配置,否则会出现问题。
这在微信的文档中已经说明的很详细了,如果仍然不太懂的话可以私聊我一起解决问题哦。
调试:
微信jssdk有个调试工具就是在微信配置信息的debug设置为true的话是可以展示一些信息,非常好用和有用,建议在不知道问题的情况下打开这个开关。
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,企业号的唯一标识,此处填写企业号corpid
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
1: config invalid url domain
绑定的域名和url需要保持一致,意思是无效的url地址,可能需要找找后端看是不是在配置安全域名的问题,
2:config invalid signature
解决方法:
1.确定签名算法正确 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 进行校验
2.出现这个问题的可能原因是因为使用了本地的调试导致的,需要使用公网能访问的地址才行,确定url和当前页面的location.href.split('#')[0])一致
3.确保获取签名的url是动态获取的,用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。
4.可用微信开发者工具查看接口的返回信息可能是未将服务器出口IP添加至白名单
3:需要在首次进入页面的时候进行调用,传递对应的url才能够正确的获取页面验证,才能够使用微信的一些功能,如果地址页面有变化,需要重新去调用新url页面微信jssdk的注入验证。
微信js-sdk说明文档: 1:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
2:https://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS-SDK%E6%8E%A5%E5%8F%A3#.E6.A6.82.E8.BF.B0
顺便分享一波个人公众号,关注关注我呗,分享一些你们需要的资源,大家一起进步。
会分享一些视频资源的哦(免费哟)