2013-06-14 5 views
6

Ich benutze phonegapand ich registriere backbutton onDeviceReady Funktion, aber Funktion aufgerufen, wenn auf Gerät zurück Schaltfläche gedrückt. und ich habeBackbutton in Phonegap wird nicht registriert und funktioniert nicht richtig

<script src="lib/cordova-2.6.0.js"></script> 

document.addEventListener("backbutton", onBackClickEvent, false); 

function onBackClickEvent() { 
    alert("back onBackClickEvent");  
} 

hinzugefügt Diese onBackClickEvent() Funktion wird nicht genannt zu werden, habe ich noch nie, dass Alarm gesehen poped auf. Ich bekomme auch einen Fehler von Uncaught ReferenceError: cordova ist nicht definiert

was könnte der Fehler sein Bitte schlagen Sie mir vor. Danke im Voraus.

+0

Check unten beantworten meine. – Maulik

Antwort

4

ich die Antwort auf meine Frage bekommen. Ich habe gekämpft und viele Entwickler versuchen, es zu lösen, und als ich den dummen Fehler fand, fand ich mich so albern.

I

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

statt

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

das ist schrieb, warum ich einen Fehler cordova bin immer nicht definiert ist und keine anderen Zuhörer registriert zu werden.

3

Für die Zurück-Taste verwende ich dieses

//Android back button handler methods 
$(document).ready(function() 
{ 
document.addEventListener("deviceready", setOverrideBackbutton, false); 
}); 

/** 
* Allow override of the back button on Android platforms 
*/ 
function setOverrideBackbutton() 
{ 
if (typeof device != "undefined" && device.platform == "Android") 
{ 
    navigator.app.overrideBackbutton(true); 
} 
document.addEventListener("backbutton", backButtonTap, true); 
} 

/** 
* Callback after a backbutton tap on Android and windows platforms. 
* Do nothing. 
*/ 
function backButtonTap() 
{ 
//Do not remove 
} 
+0

Das hat nicht funktioniert. Cordova 3.7 – Kvk

1

pls überprüfen, ob der Pfad und Dateinamen zu Ihrem cordova.js korrekt ist. Stellen Sie sicher, dass Sie die echte cordova.jar-Datei und die privaten Android-Bibliotheken in der Projekteigenschaft-> Java Build Path-> Order & Export überprüft haben.

Für mehr Information lesen Sie in diesen link

und wenn Sie mehr als eine Datei importieren setzen dann die cordova.js Datei vor der other.js Datei und es sollte funktionieren.

und Verwenden Sie einfach

<script src="cordova-2.6.0.js"></script> 

statt

und auch dies überprüfen link1 & link2

5

Vergessen Sie nicht, die "deviceready" Ereignis zu nennen.

Von phonegap doc:

This is a very important event that every Cordova application should use.

Cordova consists of two code bases: native and JavaScript. While the native code is loading, a custom loading image is displayed. However, JavaScript is only loaded once the DOM loads. This means your web application could, potentially, call a Cordova JavaScript function before it is loaded.

The Cordova deviceready event fires once Cordova has fully loaded. After the device has fired, you can safely make calls to Cordova function.

Versuchen Sie, diese

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

function onDeviceReady() 
{ 
    document.addEventListener("backbutton", onBackClickEvent, false); 
} 

function onBackClickEvent() 
{ 
    alert("back onBackClickEvent");  
} 
4

Ich hatte diesen Fehler nach dem Upgrade auf cordova 3.1. Es stellt sich heraus, dass dies explizit in config.xml phonegap 3. * hinzugefügt werden muss.

<feature name="App"> 
     <param name="android-package" value="org.apache.cordova.App" /> 
    </feature> 

Sehen Sie diese link

+0

Mit 2.9 und diese Lösung funktionierte auch für mich. –