2014-01-27 131 views
0

我已經安裝了科爾多瓦(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)。我可以通過選擇Run As→Android Application,從Eclipse成功運行應用程序。

現在我想利用科爾多瓦的通知能力。我加入了插件(這個指南: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和下面的代碼粘貼到資產/ 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

我應該如何修復這些錯誤?

在此先感謝!

回答

0

您是否嘗試更新文件並運行www文件夾中的所有內容?

+0

是的,這是正確的!非常感謝您的注意:D – LittleGoldFish

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?

+0

感謝您的回覆! 我沒有提到更新文件,因爲我注意到添加插件時app/res/xml/config.xml和app/AndroidManifest.xml已經自動更新。 – LittleGoldFish