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は以前と同じです)ので、YESを返すことでUIWebView自体を処理させる必要があります。
モデル(およびキャッシングレイヤー)がすべての要求を参照して処理するようにしたいと思います。私は2番目のshouldStartLoadWithRequestでnavigationType5を見ている理由は誰にもありますか?
ええ、それは純粋な邪悪ですが、私は実際には他の多くの選択肢が見当たらず、結局同じことをしました。ありがとう! –
これを答えとして受け入れる必要があります。 :) –