Handle Android Zurück-Taste auf Phonegap InAppBrowser

8

Ich möchte die Android Back-Schaltfläche deaktivieren oder überschreiben, während ich Seiten auf dem InAppBrowser navigiere. Kann ich einen Ereignis-Listener hinzufügen, der damit umgehen kann?

BEARBEITEN: Wenn ich die Antwort von @T_D unter den angebotenen Lösungen ansehe, bin ich am nächsten dran. Es scheint nicht möglich zu sein, die Schaltfläche in InAppBrowser zu überschreiben, da alle PhoneGap-Optimierungen beim Navigieren der Seiten in diesem Plugin nicht mehr funktionieren. Ich konnte keine andere Lösung finden, als die API-Bibliothek zu ändern. Wenn hier irgendwelche PhoneGap-Leute sind und etwas mehr wissen, werde ich mich freuen, einen Kommentar zu bekommen. Danke.

Der nächste, den ich bekam:

%Vor%     
Dimosthenis Kontogiorgos 15.05.2013, 15:33
quelle

9 Antworten

6

Laut der Dokumentation kann das Verhalten der Hardware-Zurück-Schaltfläche jetzt für den InAppBrowser konfiguriert werden:

  

hardwareback: Setzen Sie diese Option auf yes, um mit der Hardware-Zurück-Taste rückwärts durch den Verlauf des InAppBrowser zu navigieren. Wenn keine vorherige Seite vorhanden ist, wird der InAppBrowser geschlossen. Der Standardwert ist yes, also müssen Sie ihn auf no setzen, wenn Sie den InAppBrowser einfach mit der Zurück-Schaltfläche schließen möchten.

Danke an Kris Erickson .

Aktualisieren Sie also Ihr InAppBrowser-Plugin, wenn die Rückwärtsnavigation das gewünschte Verhalten ist.

Weitere Einzelheiten finden Sie unter Ссылка

    
lhaferkamp 25.03.2015, 16:39
quelle
4
JamesRLamar 08.10.2013 02:30
quelle
4

Sie können es jetzt sehr leicht machen (wie in InAppBrowser Version 0.3.3), aber Sie müssen die Java-Dateien bearbeiten. Gehen Sie zum Verzeichnis src / com / org / apache / corodova / inappbrowser und bearbeiten Sie den InAppBrowserDialog.java:

Ändern

%Vor%

bis

%Vor%

Gehe dann zu InAppBrowser und finde die goBack-Funktion, ändere:

%Vor%

bis

%Vor%

Und jetzt wird der Hardware-Zurück-Button zurückgehen, bis es keine Backs mehr gibt. Ich denke wirklich, dass dies das Standardverhalten in Android sein sollte, da die Schaltfläche Fertig das InAppBrowser-Fenster bereits schließt.

    
Kris Erickson 08.03.2014 23:12
quelle
4

Ich hatte das gleiche Problem und habe es endlich zur Arbeit gebracht. Ich werde die Antwort hier posten, falls es jemandem hilft.

Dies ist der Code, den ich verwende:

%Vor%

Der Schlüssel ist im Grunde genommen das Ereignis exit , das aufgerufen wird, wenn die Zurück-Taste des Geräts angetippt wird.

Übrigens, ich habe cordova.js verwendet und meine Apps lokal mit der Cordova CLI erstellt. Ich weiß nicht, ob das einen Unterschied macht, ich erwähne es nur für den Fall.

    
Albert 20.05.2014 17:00
quelle
4

BEARBEITEN SIE NOTE: Soweit ich weiß, ist es nicht möglich, die Zurück-Schaltfläche für den InAppBrowser in PhoneGap zu überschreiben. Aber ich habe mein Bestes getan, um nach möglichen Lösungen zu suchen ...

Es gibt einen eventListener, der die Zurück-Schaltfläche in PhoneGap überschreibt - funktioniert nicht für InAppBrowser -

%Vor%

Alternativer eventListener zum Überschreiben der Zurück-Schaltfläche - Das OP hat gesagt, dass dies nicht funktioniert hat -

%Vor%

Überschreiben der Zurück-Schaltfläche in einer Aktivität - das ist plain java, funktionierte offensichtlich nicht in PhoneGap -

%Vor%

Fazit :

Die obigen Lösungen haben nicht funktioniert. Folgen Sie den Links ( diese Antwort , dieses und ein dritte ) hat auch nicht geholfen. Es ist also sehr gut möglich, dass die Zurück-Schaltfläche für den InAppBrowser in PhoneGap nicht überschrieben werden kann. Wenn jemand eine Lösung gefunden hat oder wenn sich die Dinge für eine neue PhoneGap-Version geändert haben, können Sie uns das gerne wissen lassen ...

BEARBEITEN:

Die Installation dieses Plugins führt Sie möglicherweise zur nächsten Lösung:

%Vor%

Was dieses Plugin tun wird, wird in WP8 die Schaltfläche zurück / vorwärts / schließen auf InAppBrowser bei jedem Link öffnen / Seite darin.

Siehe dieses Bild:

    
T_D 15.05.2013 15:57
quelle
3

Verwenden Sie jQuery mobile:

%Vor%     
Marcin S. 15.05.2013 15:40
quelle
2

Cordova 5.1.1 ausführen und wenn ich Seiten in den inappbroswer lade, arbeite ich gerne mit der Zurück-Taste, bis der inappbrowser auf meine index.html-Seite zurückkehrt, weil sie leer ist und nur dort sitzt. Also habe ich den folgenden Code verwendet, um das Problem zu beheben. Es beendet die App, wenn es den inappbrowser beendet.

%Vor%     
Helzgate 22.07.2015 13:04
quelle
0

Soweit ich weiß, ist es nicht möglich, die Zurück-Schaltfläche von inAppBrowser zu überschreiben oder zu erkennen. Wenn Sie die Zurück-Taste drücken, wird inAppBrowser ausgeblendet und die Steuerung zur Phonegap-Seite zurückkehren. Sie können dies mit dem focus -Ereignis im Fenster (mit jQuery) wie

abfangen %Vor%

um den Browser erneut zu öffnen. Sie könnten dann browser.executeScript() verwenden, um die im Browser geladene Webanwendung zu signalisieren, wenn Sie möchten.

Inspiriert von diesem Forenbeitrag .

    
wvengen 20.01.2014 16:48
quelle
0

Ich weiß, dass diese Frage schon eine Antwort hat, aber ich poste meine Antwort für diejenigen, die keine dieser Antworten für sie (wie mich) funktionierten:

Ich habe eine mehrseitige App für Android und IOS, und ich benutze Cordova 5.x und habe den folgenden Code auf jeder Seite mit Ausnahme der Seite hinzugefügt, die ich für InAppBrowser benötigt habe:

%Vor%

und dann für den Rest der Seiten, die ich benutzt habe:

%Vor%

zur Handhabung der Zurück-Taste

Beachten Sie Folgendes: delete window.open; basiert auf der Dokumentation

  

manuell das Standardverhalten von 'window.open'

wiederherstellen

nachdem das InAppBrowser-Plugin gut funktioniert hat und ich den Back-Button auf allen Seiten korrekt gehandhabt habe.

eine letzte Sache vergessen Sie nicht hinzuzufügen: <script type="text/javascript" charset="utf-8" src="cordova.js"></script> in Seiten, die Sie InAppBrowser haben müssen.

hoffe diese Hilfe.

    
pouya 22.11.2015 14:56
quelle

Tags und Links