最近由于業務需要,要求在微信公眾號中開發一款HTML5單頁面應用,開發場景中有一個播放頁面,當進入播放頁面的時候音頻需要自動播放,于是乎我很自然的寫下了這樣的代碼:
<audio id="myAudio" src="xxx.mp3" autoplay></audio >
在PC上啟動本地服務,調試時是正常的。但是發布到線上,用自己的iphone在微信中打開頁面時,卻不能自動播放,于是我在網上查找了一些資料,這才了解到原來以上的寫法在安卓和大部分ios的設備上是ok的,但是在小部分ios設備中不能實現自動播放的功能。
那么問題該如何解決呢?
答案很簡單,關鍵在于微信的WeixinJSBridgeReady事件,這個是微信自帶提供的事件,測試發現,只需在全局的ready函數中加入以下代碼就可以實現自動播放功能了(以下是vue 1.x中的代碼,如果是原生js,就在全局函數中加上就行了):
ready: function() {
audioAutoPlay('myAudio');
},
methods: {
audioAutoPlay: function(id) {
var audio = document.getElementById(id);
audio.play();
document.addEventListener("WeixinJSBridgeReady", function () {
audio.play();
}, false);
}
}