iOS Developer Library はあなたの親友です。UIWebView には、サブスクライブできるプロトコルがあることがわかりました。デリゲートコールバックへのリンクは次のとおりです。
あなたが欲しいのは
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
このプロトコルメソッドを実装すると、NSURLRequest
オブジェクトをイントロスペクトしNSURL
て、残りはあなた次第です...
- (NSData *)HTTPBody
編集:完全を期すために、オブジェクトのインスタンスメソッドについて言及する必要がありNSURLRequest
ます。おそらく、その NSData の中に JSON が見つかるはずです。Foundation フレームワークには、JSON データNSJSONSerialization
から を作成するために使用できるクラスがあります。NSObject
これまでにあなたが持っているものは...
// UIWebView delegate method
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSData *jsonData = request.HTTPBody;
id jsonObj = [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingMutableContainers error: nil];
// do stuff with the object...
...
// the webview shouldn't load the request since it's going to be raw json data (or is it)
return NO;
}
理論的には、このコードは機能するはずですが、受け取る JSON データが純粋な JSON である場合に限られます。あなたの質問から、JSON データに HTML が少し添付されているように見えるので、HTML 部分のデータを削除するメソッドを実装する必要があります。この方法でのデータ構造の変換に関しては、細かい印刷物がたくさんあることに注意してください。より具体的な情報については、NSJSONSerialization
ドキュメントを参照してください:
http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html
ハッピーコーディング!