有沒有什麼辦法以編程方式解除navigator.notification.alert()?當有位置服務錯誤時我會發出警報,但如果清除,我寧願將其解除,而不要求用戶手動執行。如何以編程方式解除電話通知
任何想法或解決方案?
謝謝!
有沒有什麼辦法以編程方式解除navigator.notification.alert()?當有位置服務錯誤時我會發出警報,但如果清除,我寧願將其解除,而不要求用戶手動執行。如何以編程方式解除電話通知
任何想法或解決方案?
謝謝!
您無法以編程方式關閉對話框alert()
。
但是,您可以做的不是使用alert()
實現您自己的定製覆蓋圖,該覆蓋圖的外觀/行爲與警報類似,然後您可以隨時輕鬆駁回該覆蓋。一些額外的討論是在這裏:
編輯
我做了bit more investigation到這一點,我不再相信PhoneGap的alert()
對話實際上是一樣的本地JavaScript對話框。他們正在使用一些聰明的技巧回撥爲本地代碼(在Android和iOS上)以顯示警報。
因此,它可能可以通過編程方式將對話框關閉,但幾乎肯定不會從您的JavaScript代碼中直接進行。您需要使用一些類似的技巧從您的JavaScript回調到本地代碼,然後找到並關閉Phonegap警報視圖。第一部分可能相當困難。第二部分是微不足道的:
也許是出於一個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;
}
嘿,我已經獲得國家在Java中文件的變化。 的src /安卓/ Notification.java
增加了一個參考dlg.create()
首先聲明這個..
private AlertDialog alertbox;
然後添加你來自哪裏的JavaScript
發出 「駁回」 的情況下,要添加else if (action.equals("dismiss")) {
this.dismissAll();
}
方法:
public void dismissAll(){
alertbox.dismiss();
}
請記住在通知中添加相同的內容。在通知WWW文件夾的js插件
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,"");
這將關閉所有的警報/確認/提示開去。