【发布时间】:2013-08-22 07:59:09
【问题描述】:
当我单击 UIWebview 时,我试图在 Safari 中打开一个链接(它就像广告显示一样)。 以下代码正在使用,但是当我单击 webview 时,它在 UIWebview 中打开了一些链接(不是全部)。
- (BOOL)webView:(UIWebView *)webView1 shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (webView1==webview) {
if (UIWebViewNavigationTypeLinkClicked == navigationType) {
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}
return YES;
}
}
这里发生的情况是,如果该 UIWebView 中有任何文本链接,则它可以正确打开,但如果 UIWebview 带有图像,那么它会在同一个 UIWebview 而不是新浏览器中打开。
我的当前代码
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com/files/ad.htm"]]];
[_webView setBackgroundColor:[UIColor clearColor]];
[_webView setOpaque:NO];
_webView.scrollView.bounces = NO;
}
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ( inType == UIWebViewNavigationTypeLinkClicked ) {
[[UIApplication sharedApplication] openURL:[inRequest URL]];
return NO;
}
return YES;
}
【问题讨论】:
-
那么你在webview中加载的html文件是本地的吗?
-
@iOSCoder 是的,实际上只有一个 url,如果它不起作用,那么它将从本地文件加载
-
@Popeye 有没有办法通过点击uiwebview打开safari
-
为什么这个 if conition "if (webView1==webview) "?
-
这是什么意思?它在 UIWebview 中打开一些链接(不是全部)。
标签: html ios objective-c uiwebview safari