我已经安装了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
我该如何解决这些错误?
提前致谢!
答案 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文件夹中的所有内容?