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

问题描述

我正在android studio中开发webview,我需要加载一个网站,但我也不想在webview中加载该网站的某些特定页面。假设我https://stackoverflow.com/questions/在我的 webview 中加载,但我想https://stackoverflow.com/questions/ask在用户想要访问此 url 时将此 url 发送到默认浏览器。

为此,我已经在我的代码中尝试过此代码,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;
        }

标签: javaandroidwebview

解决方案


如评论中所述:如果问题是,则此方法永远不会触发我怀疑该 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;
}

我怀疑前面没有 a httpsbut a http,或者完全省略了,或者只是你所在的路径的相对路径(即只是“问题/询问”)


推荐阅读