美文网首页
微信开发

微信开发

作者: 隔壁老王z | 来源:发表于2018-09-03 16:38 被阅读0次
    • 需要获取微信配置:
      所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用
    • startRecord, stopRecord

    1、微信JSSDKAPI都有一个大问题, 就是如果调用时间间隔过短, 就非常可能产生无效调用. 无效调用的意思是, 虽然你调用了某个API, 但是相当于没调用,它不会触发success, failcomplete中的任何一个callback!
    2、打比方说, 你做一个"按下录音, 抬手停止录音"的功能, 如果用户点击了一下录音按钮, 相当于快速地startRecord然后stopRecord, 那么stopRecord是极有可能是无效的, 不会执行任何callback.
    3、然而问题还不止这个, 微信JSSDK的调用是异步的. 举例来说就是, 你调用startRecord的时间, 和startRecordsuccesscallback被执行的时间可能间隔了若干毫秒甚至秒. 这意味着, 用户点击按钮可能会造成: 虽然是先调用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 参数(也就是问号之前)要以/结尾,因为这是公众号支付配置的要求。

    相关文章

      网友评论

          本文标题:微信开发

          本文链接:https://www.haomeiwen.com/subject/bkxiwftx.html