phonegap通知方法仍然使用webview警报

时间:2014-01-29 07:54:33

标签: javascript cordova webview phonegap-plugins cordova-3

我正在使用phonegap CLI检查默认通知是否有效。我已经添加了通知插件,当我运行时,我得到了这个输出:

  

d:\的PhoneGap \应用\ alerttest> cordova plugins ls

     

['org.apache.cordova.dialogs','org.apache.cordova.vibration']

这就是我的JS的样子:

document.addEventListener('deviceready', function () {
    if (navigator.notification) {
        //Im trying to overwrite the default alert & confirm here if navigator.notification is defined 
        window.alert = function (title, message, button, onFinish) {
            navigator.notification.alert(message, onFinish, title, button);
        };

        window.confirm = function (title, message, buttons, onFinish) {
            var onDone = function (btnIndex) {
                switch (btnIndex) {
                    case 0:
                        break;
                    case 1:
                        onFinish(true);
                        break;
                    case 2:
                        onFinish(false);
                        break;
                }
            }
            navigator.notification.confirm(message, onDone, title, buttons);
        }
    }
    else {
        var $alertBox = $(".alert-box.warning");
        $alertBox.html("No notification support :(");
        $alertBox.show();
    }
});

当我使用这些功能时,

alert("Alert", "I was clicked.", "Yes, I got it!", null);
confirm("Confirm", "2 + 2 = 4. Yes or no?", ["Yes", "No"], onDone);

我得到类似的东西:

for alert enter image description here

哪个仍然是WebView警报。我期待这样的事情:

enter image description here

我在这里做错了什么?

使用PhoneGap CLI,版本号:3.1.0-0.2.0

另外,我使用Android Jellybean(4.1.2)来检查此功能

2 个答案:

答案 0 :(得分:4)

是的我明白了!我不得不将清单文件中的android:theme从“@ * android:style / Theme.Black.NoTitleBar”更改为“@ * android:style / Theme.DeviceDefault”到中提琴,它可以正常工作!谢谢 Divesh Salian 给我一个关于此的线索!

答案 1 :(得分:0)

确保它在config.xml中 -

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