開發(fā)H5的時候遇到了ios微信瀏覽器里音樂無法播放的問題(安卓正常)。搜索資料發(fā)現(xiàn)ios微信瀏覽器里需要用戶和屏幕有過交互(點擊之類的)之后才能播放音樂。
一般情況下會使用WeixinJSBridgeReady的方法(或者wx.ready)實現(xiàn)兼容,如下
document.addEventListener("WeixinJSBridgeReady", function () {
WeixinJSBridge.invoke('getNetworkType', {}, function (e) {
network = e.err_msg.split(":")[1]; //結果在這里
playAudio();
});
}, false);
然鵝使用這個方法之后發(fā)現(xiàn)非iPhoneX的機型(也不知道和系統(tǒng)版本有沒有關系)可以播放,iPhoneX仍然不行。用戶也點擊過了屏幕,但是也還是不能播放。
最后找了很久,發(fā)現(xiàn)原因可能是我們是調(diào)用了攝像頭(用input標簽的方式)之后,才開始播放音樂。猜想是調(diào)用攝像頭的時候微信判斷用戶切出了頁面,回來之后又沒有讓用戶點擊屏幕,所以就不讓音樂播放了?
<input id="getPhoto" type="file" accept="image/*" capture="camera" >
最后的解決方法是在調(diào)用攝像頭之前就一直循環(huán)播放一個空的音頻不要停下來,這樣拍完照之后再播其他音頻就可以播放了。
不知道還有沒有其他方法可以解決這個問題可以交流一下。