我正在修改將模型層添加到iPhone應用程序,以便可以序列化/優先化HTTP請求並有選擇地緩存響應。由於UIWebViewDelegate,下面的方法讓這個相當簡單的(理論上):爲UIWebViews添加模型圖層(使用緩存); UIWebViewNavigationType和shouldStartLoadWithRequest問題
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
基本上,我的代碼檢查的navigationType,發送請求關閉的模式,並返回NO。反過來,模型層處理請求,並在完成時,使用充塞數據返回到一個UIWebView:
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL
不幸的是,推數據時回的UIWebView,我經常看到shouldStartLoadWithRequest再次觸發(此時用導航類型爲5,但使用與原始請求相同的URL)。我不能依賴模型來從緩存中提供這個(因爲URL與之前相同),所以我必須讓UIWebView通過返回YES來處理它自己。
我想避免這種情況,模型(和緩存層)查看並處理所有請求。有沒有人有任何想法,爲什麼我在輔助shouldStartLoadWithRequest中看到5的導航類型?
是的,這是純粹的邪惡,但我真的沒有看到許多其他選擇,最後,我做了同樣的事情。謝謝! –
你應該接受這個答案,然後! :) –