我有一个用例,当图像从侧面滑入后,我需要使用navigator.vibrate API振动:

此处的代码笔演示:https://codepen.io/ifusion/pen/XeWqpj

请注意,这似乎仅适用于Android Google Chrome和Android Firefox

但是,如果navigator.vibrate未被实际触摸激活,则在chrome中会在控制台中引发错误:
[Intervention] Blocked call to navigator.vibrate because user hasn't tapped on the frame or any embedded frame yet: https://www.chromestatus.com/feature/5644273861001216.
三星将在此站点第二步的结尾使用它:https://explorethenextgalaxy.com/(仅适用于android chrome和android firefox)。

发生时的屏幕截图:https://www.dropbox.com/s/e8h7s3nzfwdk9dk/Screenshot%202017-09-13%2016.50.24.png?dl=0

我看过他们的代码,就像我一样,他们只是在使用navigator.vibrate,看不到他们做任何不同的事情。

有办法绕过这个吗?我尝试了.click()等,但错误仍然显示。

最佳答案

仅当用户开始与您的页面互动时(例如,通过点击或拖动屏幕),振动API才可用。在用户交互之前不能使用它-这是为了防止网页(尤其是嵌入式广告!)试图通过使其手机振动来吓scar用户。

没有办法绕过此操作,除非重新组织您的页面,以使用户必须先轻按某些内容才能看到该内容。

10-02 16:54