2014-02-03 2 views
1

Мне нужно запустить функцию, когда пользователь нажимает кнопку в окне предупреждения. Проблема, с которой я сталкиваюсь, заключается в том, что при использовании navigator.notification.alert фактически выполняется функция обратного вызова, как только откроется окно предупреждения. Я тоже пробовал.cordova notification.alert прослушать нажатие кнопки

navigator.notification.confirm(

но это то же поведение. Самое близкое, что я получил для запуска функции, только когда пользователь нажимает кнопку во всплывающем окне, использует notification.prompt.

Однако это заставляет окно ввода в окне предупреждения. Очень надоедливый. Итак, есть ли способ сделать то, что мне нужно сделать? Все, что я хочу сделать, это запустить функцию только после того, как пользователь нажал одну из кнопок в окне предупреждения.

Для этого нужна работа. Может кто-нибудь дать мне подсказку.

Спасибо!

ответ

1

предупреждение и, возможно, весьма заметное для других людей. в функции обратного вызова вы не можете передавать параметры, иначе вы сразу вызовете функцию обратного вызова, я чувствую себя большим идиотом. смотрите ниже, если вы делаете stopfunction(); как предполагается stopfunction, вы в конечном итоге вызовете функцию обратного вызова и преследуете свою собственную историю. Надеюсь, это поможет кому-то другому, кто может столкнуться с этой проблемой. Ключом является то, что «()» делает анонимную функцию в скрипте Java и сразу запускает эту функцию.

navigator.notification.confirm(
    'you are aproaching your desired location', // message 
     stopFunction, // callback to invoke with index of button pressed 
     'Alarm',  // title 
     ['Dismissed'] // buttonLabels 
     ); 
+1

Если вам нужно передать параметры, вы можете использовать анонимную функцию для вызова: function() {stopFunction (param1, param2 и т. Д.); } –