2

UIWebView開発中のiPhoneアプリに埋め込まれています。アンカーでtarget="_ blank"を使用して、Safariでリンクを開こうとしています。

ターゲットプロパティがによって無視されていることがわかりUIWebViewます。新しいSafariインスタンスでリンクが開きません。何故ですか?

私はこの仕事をするために私が使わなければならないことを知っていますshouldStartLoadWithRequest

4

2 に答える 2

2

openURLSafariにアプリから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を渡すだけで呼び出します。

于 2012-09-18T11:51:26.570 に答える
0

おそらく、次のようなことを試すことができます。

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"]];
于 2012-09-18T11:54:24.563 に答える