作業手記のios safariオーディオ自動再生禁止の解決方法


質問シーン:
H 5を作るには、微信を開いてバックミュージックや他のオーディオファイルを再生する必要がありますが、よくある結果、アンドロイドは基本的に問題ありませんが、アップルの携帯電話は確かにだめで、いつも再生しないのはなぜですか?
問題の原因:
アップルはユーザーのために、AutoplayとJS「onload」のロード再生を禁止した.
    User Control of Downloads Over Cellular Networks

    In Safari on iOS (for all devices, including iPad), where the user may
be on a cellular network and be charged per data unit, preload and
autoplay are disabled. No data is loaded until the user initiates it.
This means the JavaScript play() and load() methods are also inactive
until the user initiates playback, unless the play() or load() method
is triggered by user action. In other words, a user-initiated Play
button works, but an onLoad="play()" event does not.

しかし、お客様は上記の効果が必要ですが、どのように解決すればいいのでしょうか.
解決方法:
方法1:(touchイベントに依存して再生するが、ユーザーが操作していない場合があり、このときちょっと気まずい......)
document.addEventListener('touchstart', function(){ 
    audio.play();
}, false);

方法2:(微信に依存するreadyイベントは行われるが,微信内部しか解決できず,外部ブラウザsafariはやはりだめ:(…)
document.addEventListener("WeixinJSBridgeReady", function () {
    audio.play();
}, false);

しかし、作品が使用するシーンが基本的に微信に基づいている場合は、方法2でこの問題を基本的に効果的に解決することができます.
また、1つのH 5に複数のオーディオがある場合は、readyのcallbackで再loadし、後で適切なタイミングでplayを呼び出せばよい.そうでなければ、playメソッドundefinedのerrorが報告される.