导航器振动在 ios 浏览器上破解代码

Kiy*_*ash 9 javascript vibration

我想navigator.vibrate在我的页面上使用。

这是我的代码:

    var canVibrate = "vibrate" in navigator || "mozVibrate" in navigator;
    if (canVibrate && !("vibrate" in navigator))
    {
        navigator.vibrate = navigator.mozVibrate;
    }

    $(document).on('click', '.answer', function (eve) {
        $this = $(this);

        navigator.vibrate(222);

        // some other code ...
Run Code Online (Sandbox Code Playgroud)

这适用于Android设备,但在 iOS 上(我在某些 iOS 设备上的 Firfox、Chrome 和 Safari 上进行了测试),代码将在这一行被破坏。

这是为什么?

kot*_*avy 17

Quentin 的说法是正确的,Apple 设备不支持 API。

实际调用该方法时,给定的代码无法检查振动支持。为了避免振动函数被捕获为未定义:

const canVibrate = window.navigator.vibrate
if (canVibrate) window.navigator.vibrate(100)
Run Code Online (Sandbox Code Playgroud)

  • +1。另一种选择是:`const canVibrate = ('vibrate' in navigator);` - 但两者都一样好。 (4认同)

Que*_*tin 11

Apple 的移动网络浏览器根本不支持它

Firefox 和 iOS 版 Chrome 是 Safari 渲染引擎的包装器。

  • 这是否意味着 Firefox 和 Chrome for IOS 也不支持 navigator.vibrate() ? (2认同)
  • 那么,有没有办法在iOS设备上启用该功能呢?甚至没有外部库? (2认同)