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