未捕获的TypeError:对象#<object>没有方法&#39;振动&#39; </object>

时间:2014-06-16 10:36:56

标签: javascript android cordova cordova-plugins android-vibration

我在cordova 3.4.0上为android创建了一个hello world项目。不知何故,我的对话框/通知插件无法正常工作。我添加了这样的插件

cordova plugin add org.apache.cordova.dialogs

并在我的android清单中添加了这一行:

<uses-permission android:name="android.permission.VIBRATE" />

当我测试插件时,它的工作方式非常好“警报”,“提示”,“确认”和“嘟嘟”,但是一旦我想调用振动方法就像我在{{3它崩溃了。这是我的代码:

$(document).ready(function(){
   document.addEventListener("deviceready", function() {
      navigator.notification.vibrate(1000);
   }, false);
})

我在logcat中遇到此错误消息:

Uncaught TypeError: Object #<Object> has no method 'vibrate'

我注销了navigator.notification的所有方法,如下所示:

var res = [];
for(var m in navigator.notification) {
     if(typeof navigator.notification[m] == "function") {
        res.push(m)
     }
}
console.log(res);

结果:“提醒,确认,提示,哔哔,activityStart,activityStop,progressStart,progressStop,progressValue”

有没有人知道为什么navigator.notification中没有振动方法?

修改

我在res / config.xml中输入了这个条目:

<feature name="Notification">
    <param name="android-package" value="org.apache.cordova.dialogs.Notification" />
</feature>

2 个答案:

答案 0 :(得分:2)

由于某种原因振动不再包含在通知插件中,而是添加了额外的插件:

https://github.com/apache/cordova-plugin-vibration/blob/master/doc/index.md

答案 1 :(得分:1)

将通知功能添加到config.xml:

<feature name="Notification">
    <param name="android-package" value="org.apache.cordova.Notification" />
</feature>