支持Android webview中的其他协议

use*_*940 19 android android-webview custom-url uri-scheme

我创建了一个Web视图应用程序,显示的页面具有market://链接,但单击它们后,我得到404屏幕以及不支持该协议的错误.我试过查看文档,但无法找到与此相关的任何内容.任何帮助深表感谢.

sve*_*ven 41

对我来说,JavaScript不是一个解决方案,因为HTML不在我的控制之下.因此,如果您需要从应用程序端控制它,那么有一个相对简单的解决方案:使用派生WebViewClient并注入实现WebView.setWebViewClient().您需要在WebViewClient实现中覆盖的所有shouldOverrideUrlLoading方法如下所示:

public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url != null && url.startsWith("market://")) {
        view.getContext().startActivity(
            new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
        return true;
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

对我来说这很好.