2014-09-18 12 views
5

Wir sind mitten in der Erstellung einer PhoneGap-basierten App mit AngularJS und dem Ionic Framework.PhoneGap InAppBrowser Ereignis-Listener zu langsam (Android)

Diese App ist ein Shop-Management-System, das mit einer bestehenden Web-App mit OAuth2 verknüpft ist, und wir haben ein Problem mit Android-Umleitung nach der Authentifizierung.

Ein Ereignis-Listener eingerichtet ist, wie folgt entweder das InAppBrowser Fenster zu schließen, auf erfolgreich Verbinden oder Aufheben ::

if (runningInCordova) { 
     connectWindow.addEventListener('loadstart', function(event) { 
      var url = event.url; 
      if (url.indexOf("code=") > 0 || url.indexOf("error=") > 0) { 

       return callback(url).then(function() { 
        connectWindow.close(); 
       }, 
       function() { 
        connectWindow.close(); 
       }); 
      } 
     }); 

für den Browser-Testzwecke ein localhost Redirect URI wird auch definiert:

http://localhost:8100/oauthcallback.html 

Auf iOS funktioniert das gut und der InAppBrowser schließt sofort, wenn es sollte, aber auf Android gibt es eine Verzögerung bevor dieser Event-Listener ausgelöst wird. Das Ergebnis ist, dass für ungefähr 1 Sekunde die folgende Fehlermeldung angezeigt wird:

Web page not available 
The web page at http://localhost:8100/oauthcallback.html could not be loaded as: 
net::ERR_CONNECTION_REFUSED 

Der Ereignislistener wird dann ausgelöst und das Fenster wird geschlossen.

Gibt es eine Möglichkeit, den Ereignis-Listener schneller auslösen zu lassen, um diesen Fehler zu vermeiden?

Vielen Dank

+0

Ich habe ein Problem mit der Anmeldung mit Twitter. Wie hast du die Rückruf-URL konfiguriert? Ich stellte den localhost und 127.0.0.1 zur Verfügung und es funktioniert nicht die Anzeige der net :: ERR_CONNECTION_REFUSED Nachricht –

+0

irgendein update/help auf diesem? – John

+0

Haben Sie versucht, eine Nicht-Localhost-URL zu verwenden? –

Antwort

0

Dies kann auch passieren, wenn Sie sind, zu versuchen, die InAppBrowser Bibliothek zuzugreifen, aber nicht das Plugin in Ihrem PhoneGap Projekt installiert ist.