微信企業號開發遇到的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只調用一次即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM