如何仅将网站页面发送到默认浏览器并在webview中加载其余网站页面?

时间:2018-08-13 09:51:35

标签: java android webview

我正在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;
        }

1 个答案:

答案 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,或者它被完全忽略了,或者只是到您的相对路径(即,只是“问题/询问”) )