Php 由于facebook登录弹出窗口,Android中的WebView出现问题

Php 由于facebook登录弹出窗口,Android中的WebView出现问题,php,android,facebook,login,webview,Php,Android,Facebook,Login,Webview,我正在为一个现有的php网站开发一个Android应用程序。该网站有一个通过Facebook的登录路径,一旦用户登录,他们就会被重定向到主页。当我想登录我的应用程序时,问题就出现了(我已经用webview创建了应用程序,以便能够在应用程序中查看网站)。现在,问题来了,当我点击按钮登录(使用应用程序)。在这个网站上,一切都很好。然而,在webview中,在将我的信息引入输入后,屏幕变白,即使我等待或关闭应用程序并再次打开它,当我按下按钮登录时,仍会出现白色屏幕。我猜这是因为弹出窗口打开,用户可以登

我正在为一个现有的php网站开发一个Android应用程序。该网站有一个通过Facebook的登录路径,一旦用户登录,他们就会被重定向到主页。当我想登录我的应用程序时,问题就出现了(我已经用webview创建了应用程序,以便能够在应用程序中查看网站)。现在,问题来了,当我点击按钮登录(使用应用程序)。在这个网站上,一切都很好。然而,在webview中,在将我的信息引入输入后,屏幕变白,即使我等待或关闭应用程序并再次打开它,当我按下按钮登录时,仍会出现白色屏幕。我猜这是因为弹出窗口打开,用户可以登录Facebook,然后登录网站。然而,我怎样才能解决这个问题呢?我没有使用Facebook的登录按钮,而是我自己的。有没有办法避免打开弹出窗口,将链接打开到iframe或其他任何东西中,并且一旦对登录的响应是肯定的,就关闭该iframe/whatever并将用户重定向到main.php?我现在吓坏了,因为我在堆栈溢出中找不到关于这个特定问题的任何答案。事先谢谢

我不知道这帮人是不是你。请试试这个

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);
        }

创建一个onCreateWindow来处理弹出窗口,如下所示。希望这有帮助。

我不知道这是否对你有帮助。请试试这个

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);
        }

创建一个onCreateWindow来处理弹出窗口,如下所示。希望这有帮助。

请检查此项。。您必须手动处理弹出窗口。谢谢!遗憾的是,链接的内容帮不了我。问题出在哪里?链接中的代码与我所拥有和需要的完全不同。我需要避免facebook弹出到我的网络视图中。因为首先打开一个auto_blank,然后打开另一个带有重定向的auto_blank,然后登录完成。对于网络视图来说,这一点都不好。我需要将这些弹出窗口打开到一个分区或类似的地方,这样当facebook的身份验证完成时,用户将被重定向到main.php,我就避免了webview中出现几个弹出窗口的问题。我怎么做?检查这个。。您必须手动处理弹出窗口。谢谢!遗憾的是,链接的内容帮不了我。问题出在哪里?链接中的代码与我所拥有和需要的完全不同。我需要避免facebook弹出到我的网络视图中。因为首先打开一个auto_blank,然后打开另一个带有重定向的auto_blank,然后登录完成。对于网络视图来说,这一点都不好。我需要将这些弹出窗口打开到一个分区或类似的地方,这样当facebook的身份验证完成时,用户将被重定向到main.php,我就避免了webview中出现几个弹出窗口的问题。我该怎么做?谢谢,我会试试的。谢谢,我会试试的。