【问题标题】:WebView handle redirect click link with Intent.ACTION_VIEWWebView 使用 Intent.ACTION_VIEW 处理重定向点击链接
【发布时间】:2018-07-17 15:41:27
【问题描述】:

我很难管理 webview 内容上的打开链接与 Intent.ACTION_VIEW 在不同设备上的点击。

我的情况是:我在我的应用程序内的 webview 中显示了一些 html 代码,此内容有一些链接(href),然后在点击事件时我想打开外部应用程序的链接,而不是在同一个应用程序内网络视图。

我通过以下方式实现了这一目标:

webview.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(request.getUrl().toString()));
        activity.startActivity(intent);    
        return true;
    }
});

所以,问题在于并非所有设备都会发生这种情况。

在 Android 7 上它可以工作,但在版本 6 上却不行。无论如何,为了管理不同的版本,我已经使用了不同的实现。

webview.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        activity.startActivity(intent);
        return true;
    }
});

我已经在 stackoverflow 上环顾四周,但我发现的唯一答案是使用上面的代码。

感谢支持

更新 - 2018 年 2 月 15 日 我已经解决了这个问题,像这样将两个@Override 方法放在一起:

webview.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(request.getUrl().toString()));
        activity.startActivity(intent);    
        return true;
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        activity.startActivity(intent);
        return true;
    }
});

【问题讨论】:

    标签: android webview hyperlink click android-webview


    【解决方案1】:

    这是因为您使用的方法仅在 API 24 (7.0) 中添加,因此在旧 API 中不存在,请查看 here。在这种情况下,您需要做的是使用old one。它被声明为Deprecated,但你仍然可以使用它。

    【讨论】:

    • 感谢@nikis 的回答,我已经使用if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) 检查了版本,如果是真的,我将使用问题的第一个块代码,否则使用第二个;但“问题”仍然存在
    猜你喜欢
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多