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只调用一次即可。

  • 相关阅读:
    angularjs自定义指令complie和link属性
    港航环境变化引起的错误解决方法
    myBatis + SpringMVC上传、下载文件
    mybatis动态sql中的trim标签的使用
    MyBatis一对多和多对一
    常用的MIME类型
    SpringMVC 文件上传配置,多文件上传,使用的MultipartFile
    web自动化测试(7)--js操作
    web自动化测试(6)--下拉列表操作
    web自动化测试(5)--鼠标、键盘操作
  • 原文地址:https://www.cnblogs.com/dudeyouth/p/6112015.html
Copyright © 2011-2022 走看看