android - 支持 Android webview 中的其他协议(protocol)

标签 android android-webview custom-url uri-scheme

我创建了一个 web View 应用程序,显示的页面具有 market://链接,但单击它们后,我得到 404 屏幕以及不支持协议(protocol)的错误。我尝试过查看文档,但找不到与此相关的任何内容。非常感谢任何帮助。

最佳答案

对我来说,JavaScript 并不是一个解决方案,因为 HTML 不受我的控制。因此,如果您需要从应用程序端进行控制,那么有一个相对简单的解决方案:从 WebViewClient 派生并使用 WebView.setWebViewClient() 注入(inject)实现。您需要在 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;
    }
}

对我来说这很好用。

关于android - 支持 Android webview 中的其他协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3583264/

相关文章:

android - 如何在android应用程序中实现应用程序空闲超时?

macos - Mac OSX Mavericks 处理 CFBundleURLName "Custom url"应用程序启动的方式是否有变化?

android - 如何在阅读原始联系人时排除 Google Plus 联系人

java - 无法实例化 Activity ,ClassNotFoundException

android - 使用 href 在 webview 上进行 Expresso 测试

iphone - 启动 Apple 的股票应用程序,并选择特定股票

iphone - 创建数据的自定义格式文件并实现以应用程序格式导出功能并在应用程序中打开文件

android - 工具栏上的文本背景问题

java - 使用 Comparator 对值进行排序会更改该对象的所有值

android - Android 中 WebView 的点击事件无法获取当前 URL