坑1,首先是一定要用微信开发者工具调试你的页面,虽然它就是一个Chrome内核包裹的玩意,但如果不用它的工具直接用Chrome你是收不到任何API返回的提示的
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 });
坑2,使用we.addCard一定要放在wx.ready里面,同时所有你使用的方法(例如wx.addCard)一定要放在wx.config的jsApiList里
坑3,jsapi签名拿回的sign,一定要是你当前访问程序的URL计算出来的api,不然会判断违法。也就是说出于安全考虑,开发者一定要在服务器端完成签名逻辑,并且建议使用者也在线上环境拿到signature
坑4,之前遇到一个问题,现象大概是:打开config中的debug:true是可以调用的,console返回的信息也是正确。但是一单关闭debug,addCard又不能用了,实在令人头大
最后尝试了下,一旦加入alert事件让页面暂停,就能顺利运行。所以认为这是config请求和addCard的同步问题
官网API解释过congfig可以放在MVVM框架中的mounted中执行,这样再调用addCard是不需要再次带上config的,问题得到解决