例如,我的片段中有一个WebView组件。我使用它来加载不同网址的所有网页,有点愚蠢但有效率。如您所知,我们指定webviewclient(如WvjbWebViewClient或jsBridge)来处理所有请求。现在我们有时想用我们的WebView加载第三平台网站,但是,我们不想为它们提供我们的业务功能,而是为了我们的沟通安全,而不是为了我们的安全。
我们的公司域名是xxx.com。我想要做的是:当webview在这个域上加载这些网页时,请使用我们的客户WebViewClient,否则使用简单的WebViewClient(新的实例)。怎么解决? (我们应该考虑网址重定向吗?)
答案 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;
}
}
这可以帮助你思考。