Eventlistener для кнопки не работает в приложении Cordova с несколькими файлами HTML - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть приложение html5 / jquery / cordova для Android, и мне нужно управлять кнопкой Android.Приложение содержит 3 html-файла, каждый из которых содержит 3 div с data-role = 'page':

  1. index.html (# index01, # index02, # index03)
  2. автомобилей.html (# cars01, # cars02, # cars03)
  3. towns.html (# towns01, # towns02, # towns03)

Меню перемещается между 3 файлами, каждая страница имееткнопка для перехода на следующую страницу.

Для управления поведением кнопки Android каждый из этих файлов содержит обработчик событий: document.addEventListener("backbutton", onBackKeyDown, false);

Мой scripts.js файл содержит function onBackKeyDown() {...}где указано желаемое поведение.На данный момент у меня нет проблем с содержанием этой функции.

(к вашему сведению: когда я нажимаю кнопку с номера #index01, я хочу выйти из приложения, когда я нажимаю кнопку с номера #cars01 или#cities01 Я хочу перейти к #index01, и когда я нахожусь на одной из других страниц, я хочу перейти на «предыдущую» страницу. Но: Мой вопрос не об этой навигации!)

Проблема, с которой я делаю , заключается в том, что onBackKeyDown срабатывает только тогда, когда я нахожусь на index.html.Всякий раз, когда я перехожу к cars.html или towns.html, оттуда на одну из подстраниц, а затем нажимаю кнопку Android, моя функция onBackKeyDown никогда не вызывается.Я проверил это, поставив alert("backbutton pressed"); в качестве первой строки в функции.Это предупреждение отображается только в index.html, а не в двух других файлах.

Поэтому мой вопрос к вам: кто-нибудь знает, почему это не работает?Или, что еще лучше, кто-нибудь может предложить решение?Я боролся уже несколько недель.

1 Ответ

0 голосов
/ 19 сентября 2018

Спасибо за комментарии, они помогли мне в правильном направлении.Поскольку я не использую маршрутизацию в своем приложении, а просто «базовый» HTML-поток страниц, я понял, что вокруг всех страниц нет контейнера.

Кроме того, событие backbutton является лишь частью библиотеки cordova.И до сих пор мне нужно было это только на главной странице.Но так как я хочу, чтобы функциональность кнопки присутствовала во всех моих html-документах, было решено добавить cordova.js в каждый html-документ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...