月別アーカイブ: 2010年7月

UIWebViewのHTMLとアプリの連携

iPhone4ユーザになりました。
iPhoneアプリの開発をはじめたので技術メモをしていきます。
Web検索してもなかなかズバリのかからないネタをニッチにひろっていきます。
初回のテーマは「UIWebViewに独自HTMLをおき、そこに含まれるリンクを触ったときの処理を引き取る」。
HTML側にリンクをはっておく。リンクが通る必要は無いので、テキトーなURLで。
ファイル名を解析するので、ファイル名部分は存在しないものを。
ソース側。ファイル名を定義。

NSString *infoPath = @"/info.htm.hogehogehoge"; 
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)rrequest
navigationType:(UIWebViewNavigationType)navigationType {
NSString *path = [[rrequest URL] path];
if ([path compare:infoPath] == NSOrderedSame) {
/* 処理 */
//return YES; にすれば普通にURLを表示するよ
return NO;
}
//そのほかのURLは普通に表示するよ
return YES;
}

ここでNOを返した場合エラー扱いになるので、これを拾いたくない場合は

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
} 

に処理を定義しておく。
※ソースがまだうまく表現出来てないのでそのうちなんとかします