Iphone 为什么UIWebView锚定';谁的目标被忽略了?
我在开发的iPhone应用程序中嵌入了一个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
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不起作用。我已经说过,我知道解决方案应该包含请求