Java Kitkat(4.4)中的WebView将在新的Broswer窗口中打开
在我将android平板电脑从4.3升级到4.4之前,我成功加载了一个webview,提示用户使用Google登录(使用OAuth 2.0),每当他们单击登录按钮时,他们都会被重定向到允许访问窗口,从那里他们可以单击允许或拒绝。所有这些都是在没有打开新的浏览器窗口的情况下发生的 升级后,当我加载webview时,这就是我看到的(仍然可以) 用户输入其凭据后,不会被重定向到同意屏幕,而是会看到此新的web浏览器(Chrome)窗口: 正如您所看到的,这是一个常规的浏览器窗口,而不是第一个 有趣的是,它在4.3中运行良好,但在4.4中却不行!有人对如何解决这个问题有什么建议吗 提前谢谢你 编辑一些代码Java Kitkat(4.4)中的WebView将在新的Broswer窗口中打开,java,android,webview,android-4.4-kitkat,Java,Android,Webview,Android 4.4 Kitkat,在我将android平板电脑从4.3升级到4.4之前,我成功加载了一个webview,提示用户使用Google登录(使用OAuth 2.0),每当他们单击登录按钮时,他们都会被重定向到允许访问窗口,从那里他们可以单击允许或拒绝。所有这些都是在没有打开新的浏览器窗口的情况下发生的 升级后,当我加载webview时,这就是我看到的(仍然可以) 用户输入其凭据后,不会被重定向到同意屏幕,而是会看到此新的web浏览器(Chrome)窗口: 正如您所看到的,这是一个常规的浏览器窗口,而不是第一个 有趣
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(Uri.parse(url).getHost().endsWith("tumblr.com"))
{
return false;
}
if(Uri.parse(url).getHost().endsWith("facebook.com"))
{
return false;
}
if(Uri.parse(url).getHost().endsWith("fake.com"))
{
return false;
}
if(Uri.parse(url).getHost().endsWith("google.com"))
{
return false;
}
if(Uri.parse(url).getHost().startsWith("file"))
{
return false;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap bitmap)
{
super.onPageStarted(view, url, null);
if(url.startsWith("https://accounts.google.com/ServiceLogin"))
{
view.setInitialScale(100);
}
}
}
请发布您的代码,特别是您的
WebViewClient
实现。我添加了一些代码!我不知道为什么这会在任何版本的Android上起作用。您总是在浏览器中加载网页,可以通过返回false
或自己手动加载。我返回false,这样它就不会在新浏览器中打开。true
表示不打开新浏览器,并且是您自己处理事件false
意味着您需要默认的WebView
行为,即打开新浏览器。