H5瀏覽器和webview后退刷新方案

最近一段時間整這個花了很長一段時間,不管是我們這邊還是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>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容