有没有办法以编程方式解除navigator.notification.alert()?当有位置服务错误时我会发出警报,但是如果它清除了,我宁愿忽略它而不是要求用户手动执行它。
任何想法或解决方案?
谢谢!
答案 0 :(得分:2)
嘿,我已经为此修改了java文件。 SRC /机器人/ Notification.java
添加了对dlg.create()
的引用首先声明这个..
private AlertDialog alertbox;
然后添加一个从javascript发送“dismiss”的案例
else if (action.equals("dismiss")) {
this.dismissAll();
}
要添加的方法:
public void dismissAll(){
alertbox.dismiss();
}
请记得在notification.js中添加相同的通知插件的www文件夹
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,"");
这将解除所有打开的提醒/确认/提示。
答案 1 :(得分:1)
您无法以编程方式关闭alert()
对话框,否。
但是,您可以执行的操作不是使用alert()
实现您自己的自定义叠加层,其外观/行为类似于警报,然后您可以随时轻松解除该问题。这里还有一些额外的讨论:
修改强>
我对此进行了bit more investigation,我不再相信Phonegap alert()
对话框实际上与原生JavaScript对话框相同。他们正在使用一些聪明的技巧来回调本机代码(在Android和iOS上)以显示警报。
因此,可能可以以编程方式关闭对话框,但几乎肯定不是直接在JavaScript代码中。您需要使用一些类似的技巧从JavaScript回调到本机代码,然后找到并关闭Phonegap警报视图。第一部分可能相当困难。第二部分是微不足道的:
答案 2 :(得分:0)
也许用div或其他元素创建一个对话框并将其显示给用户,这样你就可以轻松地将其解除。
的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;
}