Webview链接到App Launch崩溃了WebView

时间:2017-03-25 17:24:21

标签: ios objective-c webview

我有一个加载外部网址的网页视图。此站点中有一个链接,用于在单击时尝试在用户设备上启动特定应用程序。虽然它不是启动应用程序,但它会崩溃webview。

我在Chrome中测试了这个相同的网站,它将按预期工作,这意味着它启动了应用。

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

1 个答案:

答案 0 :(得分:0)

如果您正在使用Chrome浏览器启动应用程序,那么WebViews默认情况下不会处理自定义URI方案。

您必须覆盖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;
            }
        }
    }
);