前段时间在项目中遇到用webView访问内部地址并根据状态码做出一系列判断。
比如,访问地址时候发现验证信息过期,这时候需要在客户端弹出提示,要求用户重新登录获取授权token。发现在webview中很难截获这些状态。(也去了解过,但是感觉都稍显麻烦。如果有大牛知道更好的方法望告知)。
这时候解决方法之一就是(看起来复杂其实做起来也很简单):
1、直接请求给定地址的url,获取网页代码。(在请求url的过程中就可以方便的判断服务器返回的任何状态码了。)
2、将url返回的网页代码直接用webView渲染即可。
private void getWebJavaScrip() {
AHttpClient.get(startUrl, null, new ResponseHandler(getActivity(), true) {
@Override
public void onSuccess(String response) {
super.onSuccess(response);
String data = response;
webView.loadDataWithBaseURL(startUrl, data, "text/html", "utf-8", startUrl);
}
}, getActivity());
}