我正在使用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");
有什么想法吗?感谢。
答案 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出现“损坏”,因为我不相信它会正确地将插件添加到已有的应用程序中。