Я просмотрел новый исходный код Phonegap и сделал следующие изменения, чтобы заставить кнопку работать.
Html тестовый код
<script type="text/javascript">
$("#home").click(function(){
$.mobile.changePage("home.html");
});
document.addEventListener("deviceready", onDeviceReady, false);
document.addEventListener("backbutton", handleBackButton, false);
function onDeviceReady() {
console.log("PhoneGap Ready!");
}
function handleBackButton() {
console.log("Back Button Pressed!");
navigator.app.exitApp();
}
</script>
Поместите следующий код в блок else
document.addEventListener
в cordova-1.5.0.js
после строки-номера 507
if (e === 'backbutton') {
var exec = require('cordova/exec')
exec(null, null, "App", "overrideBackbutton", [true]);
}
Введите следующий код в fireDocumentEvent
метод определения cordova
в cordova-1.5.0.js
после строки-номера 592
if(type == "backbutton"){
var e = document.createEvent('Events');
e.initEvent(type);
if (data) {
for (var i in data) {
e[i] = data[i];
}
}
document.dispatchEvent(e);
return;
}
Я поместил весь кордовый-1.5.0.js в этот список с обновленным кодом https://gist.github.com/2020325
Хотя он работает для меня, но все же могут потребоваться некоторые изменения для работы во всех возможных сценариях.
Редактировать
Поместить следующий код в fireDocumentEvent
метод определения cordova
в cordova-1.5.0.js
после строки № 592
if(type == "backbutton" || type == "menubutton" || type == "searchbutton"){
var e = document.createEvent('Events');
e.initEvent(type);
if (data) {
for (var i in data) {
e[i] = data[i];
}
}
document.dispatchEvent(e);
return;
}