UIWebViewは、メッセージがiOS5と6でわずかに異なります
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
loadHTMLString:baseURL:が呼び出されると、iOS 6のビューデリゲートに送信されますが、iOS5ではそうではありません。私のデリゲートメソッドは
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}
そして、空のベースURLが原因で、共有アプリケーションがbarfにロードされたようです。これはiOS6の新機能であるため、これが原因のようです。似たようなものがあるかもしれません。デリゲートメソッドで空のベースURLをチェックすると、問題が修正されました。きれいではありませんが、うまくいきました。
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if ( [@"file:///" isEqualToString:[[request URL] absoluteString]] ) {
return YES;
}
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}