如何动态设置 webview 客户端 for webView



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

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

WebViewClient 允许您在 WebView 本身中上载在 Web 视图中选择的任何指定 URL,并且不运行浏览器。对于此功能,满足 shouldOverrideUrlLoad(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;
    }
}

如果思考,这会有所帮助。

最新更新