我正在android studio中进行webview的工作,我需要加载一个网站,但是我也不想在webview中加载该网站的某些特定页面。
假设我在网络视图中加载了https://stackoverflow.com/questions/
,但是无论何时用户想要访问此URL,我都希望将其https://stackoverflow.com/questions/ask
发送到默认浏览器。
为此,我已经在webViewClient()
中尝试过此代码,但是它不起作用!
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.contains("https://stackoverflow.com/questions/ask")){
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
}
return false;
}
答案 0 :(得分:0)
如评论中所述:如果问题出在,则此方法永远不会触发,我怀疑该URL的形式不同于您期望的形式。
尝试像这样记录通过的URL:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.i("WebView", "shouldOverrideUrlLoading called with URL=" + url);
if(url.contains("questions/ask")){
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
}
return false;
}
我怀疑前面没有https
,而是http
,或者它被完全忽略了,或者只是到您的相对路径(即,只是“问题/询问”) )