安卓上的navgiator.notification.alert()无法正常工作。Phonegap 3.0。

3

我有一个在iOS上完美工作的PhoneGap应用程序...现在是时候将其移植到Android上了...我正在使用PhoneGap 3.0,因此CLI会安装插件,但它仍然无法正常工作。

以下是需要确认框(或在这种情况下的警告框)的页面代码:

function onDeviceReady() {
            //setup page
alert('deviceRead');
}

 navigator.notification.confirm(
 'blah blah',  // message
  onConfirm,  // callback to invoke with index of button pressed
  'title',    // title
  'cancel','ok'    // buttonLabels
  );


  function onConfirm(button) {

  if(button == 2)
  {
    alert('button 2 pressed');
  }
   else
   {
   }                                       
}  

请问有人能帮我看一下应该检查哪些文件吗?我是一个很新的Android开发者,可能是.java文件或config.xml文件吗?

编辑:我应该补充说明,在日志等方面没有抛出任何错误,而且在确认之间有alert()被调用...就好像它只是跳过了代码。

2个回答

4

我发现解决方案实际上是在我的config.xml文件中...

我使用的是:

<feature name="Notification">
<param name="android-package" value="org.apache.cordova.Notification" />
</feature>

这是PhoneGap在安装页面上列出的功能,但实际上我需要将此功能更改为:

<feature name="Notification">
<param name="android-package" value="org.apache.cordova.dialogs.Notification" />
</feature>

1
PhoneGap的文档更具有误导性,而不是帮助性。迄今为止还没有找到一个正确/完整的页面。谢谢。 - Andrew Bullock
虽然我在我的代码中将“navigator.notification.alert()”更改为“alert()”,成功地得到了警报,但我很好奇为什么我在应用程序根目录或platforms/android/res/xml文件夹内的config.xml中找不到<feature>标签。我尝试在这些xml文件中添加<feature>标签后再使用“navigator.notification.alert()”。我甚至按照此链接的方法进行尝试,但都没有成功。我是phonegap的新手,是我漏掉了什么吗?(我正在使用phone gap 3.5,CLI选项,测试设备为2.3.6,使用android api 19构建)。 - Dexter
我已经得到了答案。插件需要被添加。 - Dexter

0

您的代码存在错误,请尝试以下代码:

 function onDeviceReady() {

        navigator.notification.alert(
                'This is Alert',  
                onOK,  
                'Alert', 
                'ok'   
        );

        navigator.notification.confirm(
                'This is confirm',  // message
                onConfirm,  // callback to invoke with index of button pressed
                'button 2',    // title
                'cancel', 'ok'    // buttonLabels
        );


    }


    function onConfirm(button) {
        if (button == 2) {
            alert('button 2 pressed');
        } else {

        }
    }


    function onOK() {
        alert('OK pressed');
    }

我已经实现了这段代码,但是仍然没有任何显示...在上面的代码中,我放置了一个alert()在函数之前和之后,两者都触发了,但没有显示确认或警告... - Taylor Abernethy Newman
谢谢你的帮助,Nick。我在config.xml里找到了解决方案……PhoneGap推荐的导入方式是错误的……真是太傻了。不管怎样,再次感谢你的帮助。 - Taylor Abernethy Newman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接