Iphone 为什么UIWebView锚定';谁的目标被忽略了?

Iphone 为什么UIWebView锚定';谁的目标被忽略了?,iphone,ios,uiwebview,mobile-safari,Iphone,Ios,Uiwebview,Mobile Safari,我在开发的iPhone应用程序中嵌入了一个UIWebView。 我试图通过在锚上使用target=“\u blank”在Safari中打开链接 我看到,UIWebView忽略了目标属性,链接不会在新的Safari实例中打开。为什么呢 我知道为了实现这一点,我必须使用shouldStartLoadWithRequest您应该使用openURL让Safari从您的应用程序打开网页: [[UIApplication sharedApplication] openURL:[NSURL URLWithS

我在开发的iPhone应用程序中嵌入了一个
UIWebView
。 我试图通过在锚上使用target=“\u blank”在Safari中打开链接

我看到,
UIWebView
忽略了目标属性,链接不会在新的Safari实例中打开。为什么呢


我知道为了实现这一点,我必须使用
shouldStartLoadWithRequest

您应该使用
openURL
让Safari从您的应用程序打开网页:

 [[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页面中的URL指定为“safari://..."


否则,只需调用
openURL
将完整的URL传递给它。

也许您可以尝试以下方法:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"]];

它没有回答我的问题。我想知道为什么blank不起作用。我已经说过,我知道解决方案应该包含请求