移动浏览器需要用户操作才能开始播放音频元素。在点击事件满足条件,但现在看来,touchstart是无法在Chrome Android或iOS上可接受的始发事件。(见下文)
有谁知道在哪里可以找到开始游戏所需的事件上下文的精确定义。
(我试图使用How to prevent doubletap zoom in iOS and Android 中的想法来解决 UX 问题 。自从发布我的原始问题以来,我找到了一个解决方案,可以在不使用touchstart 的情况下解决 UX 问题,但我认为基本问题关于哪些事件被认为是用户操作仍然有效。)
附录:
有人建议我对touchstart事件有误解,所以为了记录起见,我提供了一个简单的测试程序。由于它需要真实的音乐文件和移动设备,因此 JSFiddle 不是一个合适的平台(除非有人知道如何在小提琴中模拟 touchstart 事件)。要重现我的观察结果,请编辑 javascript 以加载您自己的音频文件。
<!DOCTYPE html>
<html>
<body>
<br>
<button type="button" id="but1">click</button>
<button type="button" id="but2">touch</button>
<br>
<br>
<span id="message"></span>
<script>
var e;
e = document.getElementById('but1');
e.onclick = click;
e = document.getElementById('but2');
e.ontouchstart = touchstart;
function click() {
alert('caught click');
play();
event.preventDefault();
}
function …Run Code Online (Sandbox Code Playgroud)