从 WebView 中的页面在外部浏览器中打开 link

opening link in external browser from page in WebView

我正在开发一个 angular 网站,该网站从 WebView 加载到应用程序中,其中只有一个链接必须在应用程序外部(外部浏览器)打开

我需要一种方法来从 JavaScript 处理这个问题,而不是在 android 方面做额外的工作。 我已经尝试了一些方法,包括:

window.open("url","_system")

(navigator as any).app.loadUrl("http://google.com", {openExternal : true});

嗯,没有这样的东西

相反,它必须从 android 应用程序代码中处理。当您需要在外部浏览器中打开它时,您可以向 url 添加一个参数(这里是 external=true ),然后在您的 webview url 加载中检查该参数,如下所示:

        webView.setWebViewClient(new WebViewClient(){
            @RequiresApi(api = Build.VERSION_CODES.N)
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                if((String.valueOf(request.getUrl())).contains("external=true")) {
                    Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
                    view.getContext().startActivity(intent);
                    return true;
                } else {
                    view.loadUrl(String.valueOf(request.getUrl()));
                }

                return true;
            }
        });