如何安装和调用cordova插件

时间:2014-01-27 15:01:26

标签: android eclipse plugins cordova-3

我已经安装了cordova(版本3.3)并使用以下命令构建了一个示例项目:

$ cordova create hello com.example.hello "HelloWorld"
$ cd hello
$ cordova platform add android
$ cordova build

并将项目导入Eclipse(根据http://cordova.apache.org/docs/en/3.3.0/guide_platforms_android_index.md.html#Android%20Platform%20Guide)。我可以通过选择运行方式→Android应用程序来成功运行Eclipse中的应用程序。

现在我想利用cordova的通知能力。我使用以下命令添加了插件(遵循本指南:http://cordova.apache.org/docs/en/3.3.0/cordova_notification_notification.md.html#Notification):

$ cordova plugin add org.apache.cordova.dialogs
$ cordova plugin add org.apache.cordova.vibration

当我输入时:

$ cordova plugin ls

它正确列出了我刚刚添加的插件。

我返回Eclipse并将以下代码粘贴到 assets / www / index.html (覆盖index.html中的现有代码):

<!DOCTYPE html>
<html>
  <head>
    <title>Notification Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        // Empty
    }

    // Show a custom alert
    //
    function showAlert() {
        navigator.notification.alert(
            'You are the winner!',  // message
            'Game Over',            // title
            'Done'                  // buttonName
        );
    }

    // Beep three times
    //
    function playBeep() {
        navigator.notification.beep(3);
    }

    // Vibrate for 2 seconds
    //
    function vibrate() {
        navigator.notification.vibrate(2000);
    }

    </script>
  </head>
  <body>
    <p><a href="#" onclick="showAlert(); return false;">Show Alert</a></p>
    <p><a href="#" onclick="playBeep(); return false;">Play Beep</a></p>
    <p><a href="#" onclick="vibrate(); return false;">Vibrate</a></p>
  </body>
</html>

当我将其部署到设备时,它会显示三个链接(Show Alert,Play Beep和Vibrate)。当我按下这些时,我希望发生相应的原生通知,但它没有。相反,我收到以下错误消息(显示在LogCat中):

显示警告:未捕获的ReferenceError:未定义showAlert:45

播放提示音:未捕获的ReferenceError:未定义playBeep:46

振动:未捕获的ReferenceError:未定义振动:47

我该如何解决这些错误?

提前致谢!

2 个答案:

答案 0 :(得分:0)

在您的问题中,您未提及更新API文档中所述的config.xml和AndroidManifest.xml文件。我会在这里复制它们以供参考。

(in app/res/xml/config.xml)
<feature name="Notification">
    <param name="android-package" value="org.apache.cordova.dialogs.Notification" />
</feature>
<feature name="Vibration">
    <param name="android-package" value="org.apache.cordova.vibration.Vibration" />
</feature>


(in app/AndroidManifest.xml)
<uses-permission android:name="android.permission.VIBRATE" />

有关进一步说明,请参阅此问题的答案。 Should a phonegap plugin be declared in the config.xml file?

答案 1 :(得分:0)

您是否尝试更新文件并运行www文件夹中的所有内容?