有没有办法在程序中自动关闭 navigator.notification.alert()?当出现位置服务错误时,我使用警报,但如果它被清除,我宁愿关闭它而不是要求用户手动关闭。
有什么想法或解决方案吗?
谢谢!
有什么想法或解决方案吗?
谢谢!
嗨,我在这个文件中的Java文件做了一些更改。src/android/Notification.java
添加了对dlg.create()的引用。
首先声明这个...
private AlertDialog alertbox;
else if (action.equals("dismiss")) {
this.dismissAll();
}
待添加的方法:
public void dismissAll(){
alertbox.dismiss();
}
dismiss: function(message, completeCallback, title, buttonLabel) {
var _title = (title || "Alert");//Doesnt Matter!
var _buttonLabel = (buttonLabel || "OK");//Doesnt Matter!
exec(completeCallback, null, "Notification", "dismiss", [message, _title, _buttonLabel]);
},
alertbox = dlg.create();
alertbox.show();
替代
dlg.create();
dlg.show();
在所有位置都可以使用。
只需调用,您就可以开始了。
navigator.notification.dismiss("",null,"");
你无法以编程方式解除 alert()
对话框。
然而,你可以使用自定义覆盖层代替 alert()
,它看起来/行为类似于警报,然后你可以在任何时候轻松解除它。这里有一些额外的讨论:
编辑
我对此进行了更多调查,我不再认为 Phonegap 的 alert()
对话框实际上与本机 JavaScript 对话框相同。他们使用一些巧妙的技巧来回调本机代码(在 Android 和 iOS 上),以显示警报。因此,可能可以通过编程方式解除对话框,但几乎肯定不能直接在 JavaScript 代码中完成。你需要使用一些类似的技巧从 JavaScript 回调到本机代码,然后找到并解除 Phonegap 警报视图。第一部分可能相当困难。第二部分很简单:
JavaScript
function geo_error() {
//only append error message if none exists
if ($('#page_container').find('.geo_error').length == 0) {
$('#page_container').append('<div class="geo_error">A Geolocation Error Has Occured</div>');
}
}
function get_success(position) {
//hide the error message on success
$('#page_container').find('.geo_error').hide();
}
CSS
.geo_error {
position: absolute;
top: 10px;
bottom: 10px;
left: 20px;
right: 20px;
z-index: 1000;
}