WEB内でtarget="_blank"が設定されていても、
UIWebView内で表示されてしまいます。
UIWebView内でリンクをクリックした際に、
safariを立ち上げて別ページとしてページを開くには、
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
こちらを使います。
これは、UIWebViewでページを開く際に、
アプリ内で開くか、サファリを立ち上げて表示させるかを選択できます。
return NO;のとき⇒サファリを開く
return YES;のとき⇒アプリ内で開く
クリックしたかどうかの判断は以下の条件で分岐できます。
if(navigationType == UIWebViewNavigationTypeLinkClicked)
ただ、以下のものではリンクをクリックしても
リンク先が表示されなくなってしまうので、
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
return NO;
} else {
return YES;
}
}
[[UIApplication sharedApplication] openURL: [request URL]];
を書いてクリックされたリンクを開く様にしましょう。
こんな感じです。
------
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if(navigationType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL: [request URL]];
return NO;
} else {
return YES;
}
}
------
ぜひお試しください。
0 件のコメント:
コメントを投稿