好的,我已经一直在解决这个问题了,但仍然无法弄清楚。这是一个简单的PhoneGap测试应用程序,试图显示警报。
使用Cordova 2.9.0 for iOS。我添加了一些简单的测试代码,并在Chrome中进行了测试以查看它在哪里出错,因为它在模拟器中不起作用。
当我在Chrome中进行测试时(当然,在模拟器中结果相同,但没有错误信息显示)
- 它执行onDeviceReady的操作
- 它将tb2文本框值设置为“before alert”
- 然后它在此行上发生错误:navigator.notification.alert(...,错误消息为Uncaught TypeError: Cannot call method 'alert' of undefined。
它应该正确引用cordova.js,这是我的应用程序文件夹的结构:
- cordova_plugins.js
- cordova.js
- /spec
- spec.html
- config.xml
- /css
- home.html
- /img
- index.html
- /js
- /res
这是我的config.xml代码:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.blahblahblah.hello" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Hello World</name>
<description>
Test blahblahblah Application
</description>
<author email="blahblahblah@blahblahblah.com" href="http://blahblahblah.com">
blahblahblah
</author>
<access origin="*" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
<plugins>
<plugin name="Notification" value="CDVNotification" />
</plugins>
</widget>
这是我的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 Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady() {
// Empty
document.getElementById('tb1').value = 'device ready';
}
// alert dialog dismissed
function alertDismissed() {
// do something
}
// Show a custom alert
//
function showAlert() {
document.getElementById('tb2').value = 'before alert';
navigator.notification.alert(
'You are the winner!', // message
alertDismissed, // callback
'Game Over', // title
'Done' // buttonName
);
document.getElementById('tb3').value = 'after alert';
}
</script>
</head>
<body>
<p><a href="#" onclick="showAlert(); return false;">Show Alert</a></p>
<input type="text" id="tb1" value="" />
<input type="text" id="tb2" value="" />
<input type="text" id="tb3" value="" />
</body>
</html>
我已经查阅了文档,但没有找到为什么这不起作用的线索,大多数对这个问题的回答都没有涉及2.9.0版本。
提前感谢。