最近一段時間整這個花了很長一段時間,不管是我們這邊還是Html那邊。各種方法都調(diào)試了,最后磕磕碰碰終于找到一種方式。o(╥﹏╥)o
總體的設(shè)計思路就是:每回返回的時候去清除UIWebView的緩存(安卓那邊是設(shè)計緩存的模式nolocalcache具體的自己找)
iOS的代碼:
//按鈕的響應(yīng)事件
- (void)back:(UIBarButtonItem*)btn
{
? ? if(self.webView.canGoBack==YES) {
? ? ? ? NSURLCache* cache = [NSURLCachesharedURLCache];
? ? ? ? //清除UIWebView的緩存
? ? ? ? [cacheremoveAllCachedResponses];
? ? ? ? //設(shè)置硬盤緩存的最大容量
? ? ? ? [cachesetDiskCapacity:0];
? ? ? ? [cachesetMemoryCapacity:0];
? ? ? ? dispatch_async(dispatch_get_main_queue(), ^{
?? ? ? ? ? ? [self.webViewgoBack];
? ? ? ? });
? ? }else{
? ? ? ? [self.view resignFirstResponder];
? ? ? ? [self.navigationController popViewControllerAnimated:YES];
? ? }
}
另外,還有一個小插曲:即便前端這邊這樣寫了,每回重新請求js,但是存在的問題是H5界面第一回不刷新,之后會一直刷新。這是個大坑!?。?!
解決的方案是 :html那邊利用ajax請求數(shù)據(jù)的時候 ,添加上$.ajax({??
????async:false, ?//這句話 ?異步關(guān)閉
????//******其他代碼??
});?
因為ajax默認是異步執(zhí)行的,也就是并沒有等待請求完畢就開始執(zhí)行下一行js語句了,導(dǎo)致賦值為null。
好啦,就這樣吧。有啥問題可以留言啊?。?!繼續(xù)搬磚了?。。?/p>