2013-01-08 8 views
6

Buduję swoją aplikację poprzez PhoneGap Build online. Chcę zmienić domyślne zachowanie WsteczZatrzymaj wyjście na Back Button Android w PhoneGap - Build

$(document).ready(function(e) { 
    document.addEventListener("backbutton", onBackKeyDown, false); 
}); 

function onBackKeyDown(){ 
    alert('back'); 
    return false; 
} 

jej nie działa Rozglądałem się za rozwiązanie. Ale wszystkie pokazują zmiany kodów w bibliotece PhoneGap, których nie ma w moim przypadku. Przesyłam moją aplikację w formacie .zip z config.xml wewnątrz.

Czy jest to możliwe z config.xml?

+0

Dobra uwaga. +1 –

Odpowiedz

6

Przede wszystkim zrobiłem źle, jak wskazał przez @Mejo, dzięki. Oto rozwiązanie problemu.

Krok 1: Dołącz do skryptu HTML nie trzeba go fizycznie wewnątrz zip aplikacji, jak zawarte automatycznie przez PhoneGap Budowanie

<script src="cordova.js"></script> lub <script src="phonegap.js"></script> każdy z nich będzie działać dobrze.

Krok 2: Dodaj do tego skryptu, aby uzyskać urządzenia gotowy połączenia:

document.addEventListener("deviceready", onDeviceReady, false); 

Krok 3: Dodaj zdarzeń słuchacza do Wstecz i dodać kod do tej rozmowy :

function onDeviceReady(){ 
    document.addEventListener("backbutton", onBackKeyDown, false); 
} 
function onBackKeyDown(){ 
    alert('back'); 
    return false; 
} 

Nadal teraz to nie zadziała f nie ustawisz preferencje minSDK do stosowania przez config.xml

Krok 4: Dodaj do tego regionu preferencji config.xml

<preference name="android-minSdkVersion" value="5" />

Dla odniesienia : http://community.phonegap.com/nitobi/topics/how_to_handle_back_button_in_android

3

Jego powiedział w Cordova dokumentacji API że

Zazwyczaj będziesz chciał dołączyć detektor zdarzeń z document.addEventListener po otrzymaniu 'deviceready' Event PhoneGap.

więc zmienić swój kod jak ten

document.addEventListener("deviceready", onDeviceReady, false); 

// PhoneGap is loaded and it is now safe to make calls PhoneGap methods 
function onDeviceReady() { 
    // Register the event listener 
    document.addEventListener("backbutton", onBackKeyDown, false); 
} 

// Handle the back button 
function onBackKeyDown() { 
     //Your backbutton code 
} 
+0

Dziękuję @Mejo za odpowiedź, faktycznie jest jeszcze jedna rzecz, na którą zamierzam opublikować odpowiedź. –

Powiązane problemy