Phonegap:对象#<navigator>没有方法'vibrate'

时间:2018-04-03 11:14:52

标签: android cordova phonegap vibration

当我尝试navigator.vibrate()时,我会收到

  

TypeError:Object#&lt;导航器&gt;没有方法'振动'

我正在使用phonegap cli 8.0.0,为Android构建。 我的config.xml:

< plugin source="npm" spec="~3.0.1" name="cordova-plugin-vibration" / >

尝试:

< feature name="http://api.phonegap.com/1.0/vibration" / >

同样的结果。

1 个答案:

答案 0 :(得分:0)

如果你打开cordova-plugin-vibration \ README.md,你会看到:

Android webview(API级别19及以上版本)原生支持W3C Vibration API因此,此插件的Android特定实现已被删除。

这就是为什么你在APK文件中没有看到这个插件的原因。

如果您选中https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vibrate,则会在Chrome v32中看到振动API。

此页面https://developer.chrome.com/multidevice/webview/overview表示Android 4.4(KitKat)随Chrome for Android版本30附带。随Android 4.4.3附带的更新后的WebView版本号为33.0.0.0。

因此,在低于4.4.3的Android版本上,您将没有振动API并且会收到此错误“TypeError:Object#&lt; Navigator&gt;没有方法'振动'”

你没有提到Android版本,但我想你应该有4.4到4.4.2。

怎么做

我建议使用cordova-plugin-vibration版本2. *它们不依赖于浏览器中的Vibration API。

例如,在项目文件夹中运行:

cordova plugin add cordova-plugin-vibration@2.1.6 --save