如何动态设置webView的webviewClient?

时间:2017-01-04 08:48:15

标签: android webview

例如,我的片段中有一个WebView组件。我使用它来加载不同网址的所有网页,有点愚蠢但有效率。如您所知,我们指定webviewclient(如WvjbWebViewClient或jsBridge)来处理所有请求。现在我们有时想用我们的WebView加载第三平台网站,但是,我们不想为它们提供我们的业务功能,而是为了我们的沟通安全,而不是为了我们的安全。

我们的公司域名是xxx.com。我想要做的是:当webview在这个域上加载这些网页时,请使用我们的客户WebViewClient,否则使用简单的WebViewClient(新的实例)。怎么解决? (我们应该考虑网址重定向吗?)

1 个答案:

答案 0 :(得分:0)

WebViewClient允许您在WebView中上传在WebView中选择的任何指定的URL,并且不运行浏览器。对于此功能满足shouldOverrideUrlLoading(WebView,String)方法。如果它返回true - 我们不需要启动第三方浏览器,并在此处上传他们自己的内容。

以下是我们选择是否可以在应用中打开内容,或者我们需要打开浏览器的示例:

public class MyWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(Uri.parse(url).getHost().endsWith("xxx.com")) {
            return false;
        }

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        view.getContext().startActivity(intent);
        return true;
    }
}

这可以帮助你思考。