PhoneGap Build - navigator.notification.confirm无效(方法未定义)

时间:2013-10-17 10:18:07

标签: cordova phonegap-build ripple

我正在使用AngularJS和Phonegap Build开发Android / iOS应用程序,在Chrome中使用Ripple Emulator进行本地调试。

navigator.notification.confirm对我不起作用,而navigator.notification.alert,navigator.notification.beep和navigator.notification.vibrate工作正常。 Chrome说:"Uncaught TypeError: Object [object Object] has no method 'confirm'",iOS模拟器什么都不做。

我的config.xml中有<gap:plugin name="org.apache.cordova.core.dialogs" /><preference name="phonegap-version" value="3.0.0" />,我的index.js在deviceready回调中有以下内容:

navigator.notification.confirm("Yes or no?", function(){}, "Confirmation", "Yes,No");

有什么想法吗?感谢。

3 个答案:

答案 0 :(得分:2)

我刚刚尝试了全新安装(Cordova 3.1.x),它运行正常,没有任何问题。我自己用cordova plugin add org.apache.cordova.dialogs安装了插件,这与使用phonegap-build有点不同。我认为这可能是PGB的一个问题,但我要提出的一个建议就是将<gap:plugin name="org.apache.cordova.core.dialogs" />更改为<gap:plugin name="org.apache.cordova.dialogs" />,即删除 .core 部分,因为<从命名空间中删除了strong> core (虽然可能仍然存在3.0。)

答案 1 :(得分:1)

正如mvp所说,你需要确保你的页面上有一个onDeviceReady函数,并且在它被触发之前不会调用任何API。

此外,请确保您的html页面的<head></head标记中包含以下内容:

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>

答案 2 :(得分:0)

对话框插件中不应有振动功能,只有警报,哔声,确认和提示。 但是如果你安装了振动插件,那么你应该看到振动。

如果你只是看到警报,哔哔声和振动,那么我会说你的插件安装有问题...我最近见过的。

我相信这个问题适用于全新安装,因为MBillau提到他的应用程序运行正常。在已经存在的应用程序上安装插件似乎对我来说是错误的。这是我发现的:

我使用了3个插件(媒体,设备,通知),而Notification是唯一一个无效的插件。设备准备就绪后也会发生通知(我可以播放媒体并获取设备信息,然后尝试通知,没有任何内容)。

我遇到的问题是phonegap CLI添加插件的方式。

www / corodova_plugins.js中没有条目通知,但有媒体和设备 在android / src / org / apache / cordova中没有用于通知的SRC,但是有媒体和设备。 在www / plugins中没有用于对话框的JS src,但是有媒体和设备。

检查这些位置,看看您是否有通知信息。

我尝试使用各种命令多次添加插件。 config.xml DID包括:                   

{PROJECT.DIR} / plugins DID有对话框以及媒体和设备SRC。

警告:运行“phonegap build android”会将正确的源文件放在上面提到的文件夹中,但是它会将所有src资产/ www。

删除。

我的补救措施:创建一个全新的骨架项目,添加所需的插件,为您需要的平台进行构建,然后比较骨架Phonegap应用程序和Real应用程序之间的来源,以查看差异。我现在只能看到PhoneGap CLI出现“损坏”,因为我不相信它会正确地将插件添加到已有的应用程序中。