前段時間在項目中遇到用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());
}