【问题标题】:Webview Link to App Launch Crashes WebViewWebview 链接到应用程序启动崩溃 WebView
【发布时间】:2017-03-25 17:24:20
【问题描述】:

我有一个加载外部 URL 的 web 视图。该站点中有一个链接,单击该链接会尝试在用户设备上启动特定应用程序。尽管它没有启动应用程序,但它会使 webview 崩溃。

我已经在 Chrome 中测试了同一个网站,它会按预期工作,也就是说,它会启动应用程序。

如何在 webview 中模拟相同的操作?

【问题讨论】:

  • 错误日志是什么?

标签: ios objective-c webview


【解决方案1】:

默认情况下,WebViews 根本不处理自定义 URI 方案,如果这是您在 Chrome 上启动应用程序所使用的。

您必须覆盖 WebViewClient.shouldOverrideUrlLoading() 并测试 URL 是否使用您的 URI 方案,启动您的应用并在匹配时返回 true,否则返回 false。

WebView webView = new WebView(context);
webView.setWebViewClient(new WebViewClient() {

        @Override
        @TargetApi(Build.VERSION_CODES.N)
        public boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request) {
            if (request.getUrl().getScheme().startsWith("myscheme")) {
                //launch app

                return true;
            } else {
                return false;
            }
        }

        @Override
        public boolean shouldOverrideUrlLoading (WebView view, String url) {
            if (Uri.parse(url).getScheme().startsWith("myscheme")) {
                //launch app

                return true;
            } else {
                return false;
            }
        }
    }
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多