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

标签 java android webview

我正在 android studio 中的 webview 上工作,我需要加载一个网站,但我也不想在 webview 中加载该网站的某些特定页面。 假设我在 web View 中加载 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;
        }

最佳答案

如评论中所述:如果问题是,此方法永远不会触发,我怀疑 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 ,或者完全省略了该内容,或者只是您所在路径的相对路径(即只是“问题/询问”)

关于java - 如何仅将网站页面发送到默认浏览器并在 webview 中加载其余网站页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51819615/

相关文章:

android - 尝试将 URL 从 webview 传递到浏览器

使用 Microft Azure SDK 时,java 以非零退出值 2 完成

android - 操作栏选项卡 CustomView 太长

javascript - 从JavaScript获取手机的唯一ID

java - 如何在窗口中打开链接?

javascript - 使用 cordova-plugin-crosswalk-webview 从 JS 调用原生 java 代码

java - PrimeFaces 3.0 - 如何覆盖对话框覆盖的默认不透明度?

java - 有没有办法将数据 drupal 站点传递到 java web 应用程序

java - KeyListener 在 JPanel 中不起作用?

objective-c - Facebook Like 按钮未在 Cocoa WebView 中启动新窗口