我目前正在開發一個web項目,我需要在滑動事件後開始播放視頻,但無法完成此項工作。我正在使用HTML5視頻播放器和JS來檢測滑動事件。我第一次嘗試使用hammer.js,這使得更容易檢測到滑動事件,但在努力獲得這個工作之後,我開始使用普通的js。蘋果如何定義「用戶操作」?
經過一番調試,我發現視頻HTMLElement的播放方法返回一個承諾。
NotAllowedError(DOM異常35)::當我打電話
video.play()
從我的滑動處理這一承諾總是與以下消息拒絕該請求不被 用戶代理或在當前上下文中的平臺上,可能允許因爲 用戶拒絕了權限。
由於此問題僅在iOS中存在,我開始閱讀蘋果開發者文檔,並注意到很多功能僅在「顯式用戶操作」後纔可用。例如:
重要提示:webkitEnterFullscreen()方法只能在 響應用戶操作(例如單擊按鈕)時調用。對於 示例,您不能調用webkitEnterFullscreen()以響應加載事件。
這同樣適用於從調用JS play方法。它只有在響應用戶操作而被調用時纔有效。
這裏我的問題是,蘋果如何定義「用戶行爲」?因爲顯然,滑動事件不是用戶操作。