2012-04-12 11 views
1

Ich versuche, vorhandene Phonegap-Anwendung (iOS/Android) zu WP7 zu portieren. Alles funktioniert gut, außer Code für die Handhabung der "Zurück" -Taste. Derzeit gibt es einen Handler für die Zurück-Schaltfläche, der die Seite neu lädt, wenn die Logik danach fragt, oder die Anwendung schließt, wenn sich der Benutzer auf der "ersten" Seite befindet.Programmatisch schließen Phonegap-Anwendung auf WP 7 Mango

Code:

if (doLogic) { 
    // some update logic 
} else { 
    // try to close app 
    device.exitApp(); 
} 

Leider althought, Update-Logik arbeitet, ich bin nicht in der Lage App zu schließen.

Antwort

-1

Scheint, dass mit der aktuellen PhoneGap-Implementierung ist es unmöglich, zurück Button-Handler hinzufügen und weiterhin die Anwendung mit der Schaltfläche zurück zu schließen.

diese Gelöst mit wenig Hacking in PhoneGap, indem page_BackKeyPress Methode in CordovaView.xaml.cs

geändert, wenn (OverrideBackButton) zu

string cancel = "false"; 
    if (OverrideBackButton) 
    { 
     try 
     { 
      cancel = CordovaBrowser.InvokeScript("shouldCancelBackButton") as string; 
      Console.WriteLine("CancelBackButton response: " + cancel); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("Exception while checking for backbutton cancel into cordova view: " + ex.Message); 
     } 

     try 
     { 
      e.Cancel = cancel == "true"; 
      CordovaBrowser.InvokeScript("CordovaCommandResult", new string[] { "backbutton" }); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("Exception while invoking backbutton into cordova view: " + ex.Message); 
     } 
    } 

Jetzt kann ich shouldCancelBackButton JS Funktion in Seite und basiert hinzufügen on state suppress oder Ausführen des standardmäßigen Back-Button-Handler-Verhaltens.

Wahrscheinlich ist es nicht die beste Lösung, aber leider habe ich keine Zeit, mich mit den PhoneGap-Einbauten vertraut zu machen.

2

Sie können die Anwendung auf wp7 nicht zwangsweise beenden. Es ist in den Wp7-Designrichtlinien.

Lassen Sie den Benutzer zurück drücken und brechen Sie ihn nicht ab, wenn Sie ihn beenden möchten.

+0

Ich bin mir nicht sicher, ob es mit Phonegap Event Handlern möglich ist. Zumindest habe ich keine Möglichkeit gefunden, den Standard-Handler für die Zurück-Schaltfläche nicht zu unterdrücken. – PiRX

+0

können Sie nicht "True" zurückgeben, wie ich es in jQuery/HTML tun würde? – TDaver

+0

können Sie mich auf Probe zeigen, um zu sehen, worüber Sie sprechen? Vielen Dank! – PiRX

-1

die Anwendung zu verlassen, wo immer Seite Sie sind in:

if (NavigationService.CanGoBack) 
{ 
    while (NavigationService.RemoveBackEntry() != null) 
    { 
     NavigationService.RemoveBackEntry(); 
    } 
} 
+0

Hinweis: Dies funktioniert auf Windows Phone 7, nicht sicher über PhoneGap ... – Dante

+0

Das ist Windows Phone code , nicht PhoneGap! –

0

Wie von @TDaver erwähnt, werden Windows Phone Anwendungen geschlossen werden nicht gemeint. Der Versuch, sie zu schließen, ist gegen die Dev-Richtlinien und die Anwendung wird möglicherweise abgelehnt.

lassen Sie sich einfach den Standard-Navigations-Stack-Mechanismus kümmern.

Verwandte Themen