Ich versuche, einen OAuth2-Flow mit einem benutzerdefinierten Chrome-Tab für Android zu implementieren, aber meine App ist immer geschlossen (kein Absturz), wenn die benutzerdefinierte Chrome-Registerkarte den 302 mit dem Standort / Schema meiner App empfängt.
Wenn ich eine HTML-Seite mit einem ahref-Link erstelle und manuell darauf klicke, wechselt die benutzerdefinierte Chrome-Registerkarte korrekt zu meiner App.
Scheint so, als wenn ich die Umleitung des Servers 302 im Chrome Custom Tab behandle, wird es mein benutzerdefiniertes App-Schema nicht korrekt behandeln ... aber warum?
Wenn ich die gleiche Weiterleitungs-URL in einem Aktien-Browser oder mit einem WebView versuche, funktioniert auch alles.
Hier ist meine aktuelle Einstellung:
MainActiviy.java
%Vor%AndroidManifest.xml
%Vor%Dies ist die Weiterleitungs-URL, die die App mit HTTP 302-Code erhalten hat:
myappscheme: // oauth? code = 1234567 & amp; state = tokenCheck123
build.gradle
%Vor%Danke für jede Hilfe ...
Ich habe auch meine Android-App unerwartet nach der serverseitigen 302-Umleitung zu einem benutzerdefinierten Schema beobachtet und die erwartete Handhabung von eigenständigem Chrome und manuell ausgelöster Umleitung im Client beobachtet.
Ich konnte das Problem beheben, indem ich das Warmup aufruft Funktion vor dem Laden der URL, die umleitet.
Mit anderen Worten, das funktioniert:
%Vor%Das funktioniert nicht:
%Vor%Die Google Chrome-Tabs für benutzerdefinierte Tabs beschreiben das Aufwärmen als Best Practice, aber es scheint auch hilfreich zu sein Stellen Sie das erwartete Verhalten sicher.
In Bezug auf env, teste ich auf einem Nexus 5X mit Chrome 51. Meine Chrom-Tab-Abhängigkeit in Gradle sieht so aus:
%Vor%Es hat mir geholfen, die Aktivität, mit der ich ein CustomTab in singleInstance Modus starte, in der Manifest-Datei zu setzen:
%Vor%Und im Code tue ich wie immer:
%Vor% Ich habe versucht, Chrome aufzuwärmen und sogar customTabsIntent.launchUrl()
mit einer gewissen Verzögerung aufzurufen, nachdem ich client.warmup(0l);
aufgerufen habe, und beides hat nicht geholfen.
Ich bin mir ziemlich sicher, dass dies das Ergebnis eines Fehlers in Chrome ist. Ich habe alle meine Geräte (GS6, GS7, Nexus 7 und Nexus 9) auf die neueste Version von Chrome aktualisiert und meine App wird nicht mehr minimiert, wenn die Weiterleitung erfolgt.
Ich habe das gerade heute (11/3/2016) entdeckt, daher habe ich noch keine Informationen über den spezifischen Fehler oder dessen anschließende Lösung. Genau das ist mir aufgefallen.
Hoffe das hilft!
Tags und Links android oauth google-chrome chrome-custom-tabs