我们有一个播放叙述的书籍播放器应用程序。在点击页面时,它具有该书的所有音频URL的摘要。当您更改页面时,音频应该自动播放。在桌面上,这可以正常工作,而在iOS Safari中,如果没有直接的用户交互,它将无法播放。这意味着调用堆栈必须具有用户单击事件,这也是可以的,因为每次页面更改都需要单击。
但是,我们最近切换到需要签名网址的CDN,我们通过对我们网站的ajax调用进行签名。由于这些网址已过期,因此我们必须在获得签名网址后立即加载音频资源。所以这意味着,我们不是通过更改页面来触发加载/播放,而是在我们更改页面时触发URL签名。理想情况下,URL签名的响应应该能够触发音频播放,但onreadystatechange
成为调用堆栈的根。由于这不再是click
事件的调用堆栈,因此在页面上播放音频现在是一个两个步骤,这是不太理想的。
据我所知,我们有几个选择:
有没有其他人不得不处理这样的事情?你是怎么绕过它的?任何人都可以看到我缺少的其他选项吗?