PhoneGap Notification.Alert 不起作用
Posted
技术标签:
【中文标题】PhoneGap Notification.Alert 不起作用【英文标题】:PhoneGap Notification.Alert not working 【发布时间】:2013-07-17 06:10:10 【问题描述】:好的,我已经研究这个问题一段时间了,但无法解决这个问题。简单的 PhoneGap 测试应用,尝试显示警报。
使用适用于 iOS 的 Cordova 2.9.0。我添加了一些简单的测试代码并在 chrome 中对其进行了测试,以查看它在哪里中断,因为它在模拟器中不起作用
当我在 Chrome 中测试时(当然在模拟器中的结果相同,但没有显示错误消息)
它按应有的方式执行 onDeviceReady 它将 tb2 文本框的值设置为 'before alert' 然后它因错误而中断:Uncaught TypeError: Cannot call method 'alert' of undefined, on this line: navigator.notification.alert(...它应该正确引用cordova.js,这是我的应用程序文件夹的结构:
cordova_plugins.js cordova.js /规格 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 版
提前致谢。
【问题讨论】:
我遇到了同样的问题,搜索了一下,发现:[ios 通知警报不起作用 - Phonegap 2.3.0][1] [1]:***.com/questions/14730693/… 【参考方案1】:我知道这个问题是关于 Phonegap 2.9 的,但是当有人寻找“phonegap alert not working”时,这是 Google 吐出的第一件事。所以这是我为它与 Phonegap 3.0 一起工作所做的:
根据manual,您需要将插件添加到您的项目中。只需导航到您的项目根文件夹并编写以下命令:
$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs.git
之后,我将其添加到我的 html 中:
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script>
document.addEventListener("deviceready", onDeviceReady, true);
function onDeviceReady()
navigator.notification.alert("PhoneGap is working", function(), "", "");
</script>
【讨论】:
@Andre 我尝试了上面的答案,在我的项目根目录中运行上面的命令,但我收到以下错误“-bash: phonegap: command not found”。知道可能是什么问题。 @user2086641 您要么没有安装 phonegap,要么它不在您的路径中。查看网站了解安装说明。 cordova 插件添加 org.apache.cordova.dialogs - 这也添加了对话框插件【参考方案2】:我正在使用 Phonegap 2.9.0,我遇到的问题是我没有将脚本 cordova.js 添加到页面中。
另外请注意,每个平台都存在一个特定于每个平台的 cordova.js 文件,因此请注意在 iOS 上从 android 添加 cordova.js。
请记住,所有对 phonegap API 的调用都应在 deviceready 触发后完成
【讨论】:
【参考方案3】:尝试将此功能添加到您的 config.xml 文件中..
<feature name="Notification">
<param name="wp-package" value="Notification"/>
</feature>
..希望对您有所帮助...
【讨论】:
【参考方案4】:你只需要添加插件:
cordova-plugin-dialogs
然后使用将中断程序流程的警报功能:
alert("some problem here");
适用于 iOS 和 Android。
【讨论】:
以上是关于PhoneGap Notification.Alert 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)
Phonegap : 浮动气泡通知,如 Phonegap 中的 facebook messenger
phonegap build + phonegap-cli + ionic 图标
PhoneGap - Android - 在 phonegap 中滑动导航