zoukankan      html  css  js  c++  java
  • 微信企业号开发遇到的bug

    a. 微信嵌入视频:

      a.1 视频元素播放时层级默认被顶置

      a.1 视频播放后窗口无法通过css改变层级

      a.2 视频播放后窗口无法通过css隐藏

      解决方案:做个假的播放窗口,点击播放窗口(假的)后弹窗进行播放,关闭弹窗时删除真正的视频元素

    b. 微信录音:

      a.1 开启wx.startRecord()接口后touchend事件无法触发(touchstart->touchcancel, 我也不知道为什么,就是这么奇葩)

      a.2 某些机型录音超时不会onVoiceRecordEnd方法

      a.3 iphone的语音不兼容android

      解决方案:

        a.1 没有太完美的解决方案!按住录音是暂时无法实现的了,只能通过点击事件来实现录音功能了(例如:点击开启录音按钮(开始录音)->点击结束录音按钮(结束且生成录音))

        a.2 通过设置定时器来监听录音是否超过60s

        a.3 通过后台转码成MP3

    c. 页面缓存:

      a.1 当你快速重复的点击微信公众号的一个链接时,有时会出现跳转失败问题(页面无法跳转,微信页面缓存与跳转指向出现了问题)

      解决方案:每个跳转链接加上时间戳参数

    d. 微信滑动:

      a.1 微信下滑版本提示会使页面滑动变得卡顿不流畅

      解决方案:

    document.addEventListener('touchmove',function(e){
           e.stopPropagation();
    },false)

    e. 部分安卓系统不支持Object.assign方法:

      e.1 自己写一个对象合并方法

      解决方案:

    function assignObject(o, n) {
        for (var p in n) {
            if (n.hasOwnProperty(p) && (!o.hasOwnProperty(p)))
                o[p] = n[p];
        }
    }




    f. ios上传图片无法预览,ios新版系统微信浏览器使用了WKwebview内核,因为安全问题不能直接使用localId预览图片

      f.1 可以通过wx.getLocalImgData()获取base64字符串预览图片,但是android得到的base64字符有偏差,少了图片类型头标识
      f.2 最终方法:ios系统使用wx.getLocalImgData()获取base64字符串实现图片预览,如果base64字符不带图片类型标识则使用localId实现图片预览

    解决方案:
    wx.checkJsApi({
        jsApiList: ['getLocalImgData'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
        success: function(res) {
            // 以键值对的形式返回,可用的api值true,不可用为false
            // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
            if (res.checkResult.getLocalImgData) {
                wx.getLocalImgData({
                    localId: localId, // 图片的localID
                    success: function(res) {
                        var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
                        if (localData.indexOf('data:image') == -1) {
                            localData = localId;
                        }
                        showImageContainer.find("img").prop('src', localData); //放入图片
                    }
                });
            } else {
                showImageContainer.find("img").prop('src', localId); //放入图片                            
            }
    
        }
    });

    g. 服务器使用https协议时,外链也需要使用https协议,否则ios系统不支持(android是支持的) 

      解决方法: 把外链的http协议转换成https协议(外链需要支持https协议)

    H. wx.uploadImage不支持一次上传多张图片

      解决方法:上传一张后再上传第二张......

    I. ios系统vue单页面应用wx.config签名失败与jssdk分享接口配置无效

      安卓系统单页面应用history模式下,切换路由需要使用当前的url重新生成配置信息(验证签名)重新调用wx.config接口。而ios系统则不需要,使用页面初始化的url生成配置信息wx.config只调用一次即可。

  • 相关阅读:
    与众不同 windows phone (50)
    与众不同 windows phone (49)
    重新想象 Windows 8.1 Store Apps (93)
    重新想象 Windows 8.1 Store Apps 系列文章索引
    重新想象 Windows 8.1 Store Apps (92)
    重新想象 Windows 8.1 Store Apps (91)
    重新想象 Windows 8.1 Store Apps (90)
    重新想象 Windows 8.1 Store Apps (89)
    重新想象 Windows 8.1 Store Apps (88)
    重新想象 Windows 8.1 Store Apps (87)
  • 原文地址:https://www.cnblogs.com/dudeyouth/p/6112015.html
Copyright © 2011-2022 走看看