- 需要获取微信配置:
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用
-
startRecord, stopRecord
1、微信JSSDK的API都有一个大问题, 就是如果调用时间间隔过短, 就非常可能产生无效调用. 无效调用的意思是, 虽然你调用了某个API, 但是相当于没调用,它不会触发success, fail或complete中的任何一个callback!
2、打比方说, 你做一个"按下录音, 抬手停止录音"的功能, 如果用户点击了一下录音按钮, 相当于快速地startRecord然后stopRecord, 那么stopRecord是极有可能是无效的, 不会执行任何callback.
3、然而问题还不止这个, 微信JSSDK的调用是异步的. 举例来说就是, 你调用startRecord的时间, 和startRecord的success的callback被执行的时间可能间隔了若干毫秒甚至秒. 这意味着, 用户点击按钮可能会造成: 虽然是先调用startRecord再调用stopRecord, 但是可能stopRecord先于startRecord调用成功!
4、第一次调用startRecord会弹出提示“是否允许获取录音权限”,而此时已经检测不到touchend事件,因此录音动画会一直执行,解决:在mounted(用的vue)的时候
def.wx.ready(() => {
var allow_record = localStorage.getItem("allow_record");
if (!allow_record || allow_record !== true) {
def.wx.startRecord({
success: function() {
localStorage.setItem("allow_record", true);
def.wx.stopRecord();
},
fail: function() {
// alert("失败");
},
cancel: function() {
// alert("取消");
}
});
}
});
- 使用
jssdk上传多张图片,在安卓正常,在ios只能上传成功最后一张
ios使用递归上传 - 音频无法自动播放
//一般情况下,这样就可以自动播放了,但是一些奇葩iPhone机不可以
document.getElementById('car_audio').play();
//必须在微信Weixin JSAPI的WeixinJSBridgeReady才能生效
document.addEventListener("WeixinJSBridgeReady", function () {
document.getElementById('audio').play();
document.getElementById('video').play();
}, false);
- 在自己的公众号能实现支付,从别的公众号进来不能支付。
既然自己的公众号能支付了,那么很有可能是跳转过来的公众号的url出现的问题。
正确的:http://3w.yijia.com/wechat/pay/?id=1
错误的:http://3w.yijia.com/wechat/pay?id=1参数(也就是问号之前)要以/结尾,因为这是公众号支付配置的要求。









网友评论