UIWebView
開発中のiPhoneアプリに埋め込まれています。アンカーでtarget="_ blank"を使用して、Safariでリンクを開こうとしています。
ターゲットプロパティがによって無視されていることがわかりUIWebView
ます。新しいSafariインスタンスでリンクが開きません。何故ですか?
私はこの仕事をするために私が使わなければならないことを知っていますshouldStartLoadWithRequest
。
UIWebView
開発中のiPhoneアプリに埋め込まれています。アンカーでtarget="_ blank"を使用して、Safariでリンクを開こうとしています。
ターゲットプロパティがによって無視されていることがわかりUIWebView
ます。新しいSafariインスタンスでリンクが開きません。何故ですか?
私はこの仕事をするために私が使わなければならないことを知っていますshouldStartLoadWithRequest
。
openURL
SafariにアプリからWebページを開かせるために使用する必要があります。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://..."]];
特定のリンクのタップを「インターセプト」し、そのURLでSafariを開きたい場合は、あなたが言うように、を使用できますshouldStartLoadWithRequest
。URLのプロトコルにカスタムスキームを使用することをお勧めします。これにより、Safariで開く必要のあるリンクと、次の場所で開くことができるリンクを区別できますUIWebView
。
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
if ([[[request URL] scheme] isEqual:@"safari"])
[[UIApplication sharedApplication] openURL:[NSURL stringByReplacingOccurrencesOfString:@"safari://" withString:@"http://"]];
}
この場合、HTMLページで「safari://...」としてURLを指定します。
openURL
それ以外の場合は、完全なURLを渡すだけで呼び出します。
おそらく、次のようなことを試すことができます。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"]];