Как отклонить уведомление о разрыве телефона программно - PullRequest
6 голосов
/ 31 августа 2011

Есть ли какой-нибудь способ программно закрыть navigator.notification.alert ()?Я предупреждаю, когда возникает ошибка служб определения местоположения, но если она устраняется, я бы предпочел отклонить ее, а не требовать, чтобы пользователь сделал это вручную.

Есть идеи или решения?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 19 ноября 2014

Эй, у меня есть изменения в файле Java для этого. SRC / Android / Notification.java

Добавлена ​​ссылка на dlg.create ()

Сначала объявите это ..

private AlertDialog alertbox;

Затем добавьте случай, когда вы отправляете «отклонить» из JavaScript

else if (action.equals("dismiss")) {
     this.dismissAll();
}

Добавляемый метод:

public void dismissAll(){
    alertbox.dismiss();
}

Не забудьте добавить то же самое в messages.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 голос
/ 31 августа 2011

Вы не можете программно закрыть диалоговое окно alert(), нет.

Однако вы можете вместо использования alert() внедрить свой собственный оверлей, который выглядит / действует как предупреждение, и тогда вы можете легко от него отказаться, когда захотите.Некоторое дополнительное обсуждение здесь:

Окно предупреждения о закрытии JavaScript

Редактировать

Я провел немного больше исследований в этом, и я больше не верю, что диалог Phonegap alert() на самом деле такой же, как диалог родного JavaScript.Они используют некоторые хитрые трюки для обратного вызова нативного кода (как на Android, так и на iOS), чтобы показать предупреждение.

Таким образом, может иметь возможность закрыть диалоговое окно программно, но почти наверняка не напрямую из вашего кода JavaScript.Вам нужно будет использовать некоторые подобные хитрости, чтобы перезвонить из вашего JavaScript в собственный код, а затем найти и закрыть представление предупреждений Phonegap.Первая часть может быть довольно сложной.Вторая часть тривиальна:

Скрыть UIAlertView программно?

0 голосов
/ 31 августа 2011

Возможно, создайте диалог из элемента 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...