PhoneGap 的通知插件不起作用
Posted
技术标签:
【中文标题】PhoneGap 的通知插件不起作用【英文标题】:Notification plugin for PhoneGap not working 【发布时间】:2014-06-03 09:01:10 【问题描述】:我已经安装了这样的通知插件:
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs.git
然后我在/www/
文件夹中添加了config.xml
:
<feature name="Notification">
<param name="android-package" value="org.apache.cordova.dialogs.Notification" />
</feature>
我已经尝试在我的index.html
中测试这样的插件:
document.addEventListener("deviceready", onDeviceReady, true);
function onDeviceReady()
alert('Device ready');
var beep = function()
try
if(navigator != null)
navigator.notification.alert("2");
else
alert(navigator);
catch(e)
alert("Alert failed: " + e.message);
beep();
但我总是收到“警报失败”作为 navigator.notification
未定义的消息。
我正在使用 phonegap 3.3.0-0.19.6
并使用 phonegap local build android
构建项目
我错过了什么?
【问题讨论】:
没有来自 logcat 的其他消息?例如,官方文档说你应该在你的 Manifest 文件中添加一个特定的权限<uses-permission android:name="android.permission.VIBRATE" />
。可能这仅与振动有关,但实际上文档中没有任何内容说此权限不是强制性的。
感谢 lorenzo,但我没有在任何地方提到 vibration
字 :) 如果我使用 @987654332,我只对显示自定义警报通知感兴趣,而不是使用出现在 Android 上的标准黑色通知@
我喜欢没有 cmets 的投反对票 :)
【参考方案1】:
我认为您应该使用不同的网址:
phonegap local plugin add https://github.com/apache/cordova-plugin-dialogs
或者更好的是,使用 Cordova CLI 并执行以下操作:
cordova plugin add org.apache.cordova.dialogs
然后
cordova prepare
这应该会为您更改 config.xml 等。
【讨论】:
我认为这两个 url 会产生同一个插件。我会检查。但是对于使用 Cordova CLI 的建议,我认为在同一个项目中混合使用phonegap
和 cordova
添加插件是不明智的。 phonegap 命令也会这样做
好吧,我不想让赏金积分白白浪费,我会奖励你积分。但是会看到我的问题的最终答案是什么,如果我找到了“错误”的原因并发布。谢谢【参考方案2】:
我正在使用 phonegap 云构建,对我来说,将以下行添加到 phonegap config.xml 解决了问题
<gap:plugin name="org.apache.cordova.dialogs" />
【讨论】:
你是在哪个版本上做的?好像是2.9
之前的版本?【参考方案3】:
查看/assets/www/cordova_plugins.js 文件,看看它对通知插件的引用是否是这样的,
"file": "plugins/org.apache.cordova.dialogs/www/notification.js",
"id": "org.apache.cordova.dialogs.notification",
"merges": [
"navigator.notification"
]
,
"file": "plugins/org.apache.cordova.dialogs/www/android/notification.js",
"id": "org.apache.cordova.dialogs.notification_android",
"merges": [
"navigator.notification"
]
,
还要检查 /assets/www/plugins/org.apache.cordova.dialogs/www 文件夹内容。它与您的 cordova_plugins.js 文件中引用的相同吗?
【讨论】:
【参考方案4】:我遇到了同样的问题,这是你必须做的才能让它工作:
使用cordova cli:
cordova plugin add org.apache.cordova.dialogs
cordova build
然后,cordova build 并不总是将正确的行添加到 config.xml - 所以我们必须将其更改为以下内容: (在 app/res/xml/config.xml - 不是 www 文件夹)
<feature name="Notification">
<param name="android-package" value="org.apache.cordova.dialogs.Notification" />
</feature>
【讨论】:
谢谢,但我使用的是phonegap而不是cordova,所有通知似乎都已正确安装。我应该使用而不是你的命令,我应该使用local phonegap plugin add org.apache.cordova.dialogs
不,但是:A.注意我的第二条评论 - 你在 - app/res/xml/config.xml 上有正确的线路吗? B. 对我来说 cordova 解决了一些问题,所以考虑使用它。
谢谢,但是:A. 看看我的问题 :) 你的意思是将这些行添加到 config.xml
吗?另外,我必须注意,更改 www/config.xml 之外的任何内容只是一个临时解决方案。考虑一下这个帖子***.com/questions/19112436/…,而且我不应该混合使用phonegap和cordova,这是我的理智告诉我的:)(最后我回答了其他一些帖子:/)以上是关于PhoneGap 的通知插件不起作用的主要内容,如果未能解决你的问题,请参考以下文章
datePicker 插件在 Phonegap 2.0 中不起作用