Android webview:控制在重定向时使用哪个浏览器
Android webview: controlling which browser is used on redirection
所以我希望在我的 webview 中使用 window.location
时,页面显示在同一页面上并且不使用默认浏览器打开新的 window,所以我添加了这段代码:
view.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
问题是现在我使用的每个 link 都在同一个 window 中打开。例如,如果我想使用 window.open(url)
并且我希望使用默认浏览器打开它,我应该怎么做?
解决方法如下:
view.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null) {
if (url.startsWith("http://")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
} else {
view.loadUrl(url);
return false;
}
}
else
return false;
}
});
长话短说,您覆盖了该方法,但检查 url 是否是本地的 ("If it's not local it should start with "http://")。当然,您可以根据需要自定义它。
所以我希望在我的 webview 中使用 window.location
时,页面显示在同一页面上并且不使用默认浏览器打开新的 window,所以我添加了这段代码:
view.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
问题是现在我使用的每个 link 都在同一个 window 中打开。例如,如果我想使用 window.open(url)
并且我希望使用默认浏览器打开它,我应该怎么做?
解决方法如下:
view.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null) {
if (url.startsWith("http://")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
} else {
view.loadUrl(url);
return false;
}
}
else
return false;
}
});
长话短说,您覆盖了该方法,但检查 url 是否是本地的 ("If it's not local it should start with "http://")。当然,您可以根据需要自定义它。