4

我正在使用 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");

有任何想法吗?谢谢。

4

3 回答 3

2

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

于 2013-10-17T13:01:15.100 回答
1

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

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

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
于 2013-10-17T11:10:34.550 回答
0

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

如果您只看到警报、哔哔声和振动,那么我会说您的插件安装有问题......我最近看到的东西。

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

我使用了 3 个插件(媒体、设备、通知),而通知是唯一一个不工作的。设备准备就绪后也会发生通知(我可以播放媒体并获取设备信息,然后尝试通知,但什么也没有)。

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

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

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

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

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

警告:运行“phonegap build android”会将正确的源放置在提到的文件夹中,但它会清除 assets/www 中的所有 src。

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

于 2014-03-02T17:39:03.403 回答