2016-05-30 5 views
1

Ich arbeite an einer Android-App für eine bestehende PHP-Website. Die Website hat einen Login-Pfad über Facebook und sobald die Benutzer sich einloggen, werden sie auf die Hauptseite weitergeleitet. Das Problem tritt auf, wenn ich mich in meiner App anmelden möchte (ich habe die App bereits mit einem Webview erstellt, um die Website in der App sehen zu können). Jetzt kommt das Problem, wenn ich auf den Knopf für den Login klicke (mit der App). Auf der Website läuft alles gut. In der Webansicht, nachdem ich meine Informationen in die Eingaben eingegeben habe, wird der Bildschirm jedoch weiß, und obwohl ich warte oder die App schließe und sie wieder öffne, wenn ich die Taste zum Anmelden drücke, erscheint dieser weiße Bildschirm. Ich denke, es ist wegen des Popups, das geöffnet wird, um den Benutzer in Facebook und dann in die Website einzuloggen. Wie könnte ich dieses Problem lösen? Ich benutze NICHT den Facebook-Login-Button, sondern meinen eigenen. Gibt es eine Möglichkeit, das Öffnen des Popups zu vermeiden, den Link in einen iFrame oder was auch immer zu öffnen, und wenn die Antwort für den Login bejahend ist, schließe diesen iframe/was auch immer und leite den Benutzer zu main.php um? Ich flippe gerade aus, weil ich in Stack Overflow für dieses spezielle Problem keine Antwort finden kann. Danke im Voraus!Problem mit WebView in Android aufgrund von Pop-up von Facebook Login

+0

Überprüfen Sie dies .. Sie müssen das Popup manuell behandeln..http: //stackoverflow.com/questions/12648099/making-facebook-login-work-with-android-webview/19068076#19068076 –

+0

Vielen Dank ! Leider konnte mir der Inhalt des Links nicht helfen. – Criss

+0

Was war das Problem? –

Antwort

0

Ich weiß nicht, ob diese Hilfe Sie sind. Bitte versuchen Sie es.

String redirect_uri = "https://m.facebook.com/v2.1/dialog/oauth/read"; 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      String host = Uri.parse(url).getHost(); 

      if(host.equals("m.facebook.com") || host.equals("www.facebook.com")){ 
       return false; 
      }else { 
       return super.shouldOverrideUrlLoading(view, url); 
      } 



     @Override 
     public void onPageFinished(WebView view, String url) { 
      progressBar.setVisibility(View.INVISIBLE); 

       if (url.startsWith(redirect_uri)) { 
        mWebviewPop.loadUrl(url_with _fblogin);  
        new CountDownTimer(4000,4000) {   // giving the webview a 4s delay to complete the process. 
         @Override 
         public void onTick(long l) { 

         } 

         @Override 
         public void onFinish() { 
          if(mWebviewPop != null){ 
           mWebviewPop.setVisibility(View.GONE); 
           mContainer.removeView(mWebviewPop); 
           mWebviewPop=null; 
           mWebview.loadUrl(url_with _fblogin);  // mWebview is the orginal webview. 
          } 
         } 
        } .start(); 
       } 
      super.onPageFinished(view, url); 
     } 

ein onCreateWindow Erstellen Sie das Pop-up wie diese Making facebook login work with an Android Webview .Hier mWebviewPop ist der Webansicht von onCreateWindow zu handhaben. Hoffe das hilft.

+0

Danke, ich werde es ausprobieren. – Criss

Verwandte Themen