Android webview:控制在重定向时使用哪个浏览器

Android webview: controlling which browser is used on redirection

所以我希望在我的 webview 中使用 window.location 时,页面显示在同一页面上并且不使用默认浏览器打开新的 window,所以我添加了这段代码:

     view.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
    });

问题是现在我使用的每个 link 都在同一个 window 中打开。例如,如果我想使用 window.open(url) 并且我希望使用默认浏览器打开它,我应该怎么做?

解决方法如下:

     view.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url != null) {
                if (url.startsWith("http://")) {
                    view.getContext().startActivity(
                            new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                    return true;
                } else {
                    view.loadUrl(url);
                    return false;
                }
            }
            else
                return false;
        }
    });

长话短说,您覆盖了该方法,但检查 url 是否是本地的 ("If it's not local it should start with "http://")。当然,您可以根据需要自定义它。