В документации по Cordova для версии 3.5:
http://cordova.apache.org/docs/en/3.5.0/cordova_events_events.md.html#Events
Я использовал следующий код, чтобы отключить кнопку "Назад". Событие onDeviceReady срабатывает, но событие кнопки "Назад" не работает.
// Wait for device API libraries to load
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
// Register the event listener
document.addEventListener("backbutton", onBackKeyDown, false);
}
// Handle the back button
//
function onBackKeyDown() {
}
Среди других интересных сообщений я получаю это сообщение в консоли:
exec() call to unknown plugin App.
Я видел несколько ответов на эту проблему, включая следующие, чтобы отредактировать файл config.xml и добавить следующее:
<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
Ничего из этого не работает.
Обнуление этой ошибки: exec вызов неизвестного плагина Приложение
Я изучил файл App.java, в котором есть плагин App, включенный в сборку cordova, я нашел следующую строку:
protected static final String TAG = "CordovaApp";
Это не соответствует соответствующему вызову exec(), выполненному в файле cordova.js, который поставляется с 3.5. Итак, я изменил его на
protected static final String TAG = "App";
Теперь событие переопределяет для кордовы всю работу по документации.
Приветствия.
TAG
используется только для регистрации в Logcat? Почему вы считаете, что это имеет отношение к вашей проблеме?
Чтобы отключить функциональность кнопки "назад", вам нужно вызвать preventDefault()
объекта события, переданного обработчику:
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown(e) {
e.preventDefault();
}
Если вы получаете другие ошибки, я предлагаю удалить и повторно добавить платформу Android (убедитесь, что у вас установлена последняя версия Кордовы):
$ npm update cordova -g
$ cordova platform remove android
$ cordova platform add android
Было бы лучше, если бы вы могли поделиться своим проектом, чтобы я мог видеть, что-то не так. Другие проверки, которые вы можете выполнить:
Убедитесь, что все плагины установлены для любых других функций, которые вы могли бы использовать cordova plugin ls
, предоставит вам список всех установленных.
Убедитесь, что вы ссылаетесь на <script type="text/javascript" src="cordova.js"></script>
.
Проверка готовности устройства к запуску.
Проверьте, нет ли ошибок JavaScript при отладке в инструментах Safari dev при запуске приложения.
backbutton
в строку под событиемdeviceready
(не вbackbutton
дляdeviceready
, а затем убедитесь, что у вас установлен плагинdevice
. также обязательно добавьтеreturn false;
в концеonBackKeyDown
.