我有一个用例,当图像从侧面滑入后,我需要使用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用户。
没有办法绕过此操作,除非重新组织您的页面,以使用户必须先轻按某些内容才能看到该内容。