我对Xcode不太熟悉...我有一个单页iOS应用程序,只有一个UIWebView打开特定的URL。 我希望页面内的任何带有
请问有人能告诉我如何实现这个功能?(我已经到处搜索了),还有告诉我在哪些文件中放置代码?非常感谢!!
编辑
我在我的ViewController.m文件中实现了以下代码:
target="_blank"
的链接都在Safari中打开,而不是在应用程序内部打开。请问有人能告诉我如何实现这个功能?(我已经到处搜索了),还有告诉我在哪些文件中放置代码?非常感谢!!
编辑
我在我的ViewController.m文件中实现了以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Add line below so that external links & PDFs will open in Safari.app
webView.delegate = self;
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com/"]]];
}
// Add section below so that external links & PDFs will open in Safari.app
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:request.URL];
return false;
}
return true;
}
但是在这行 webView.delegate = self;
上,我得到了一个黄色的警告,上面写着:
这个错误是什么意思,我该如何在Xcode中修复它?
webView.delegate
的类型是id<UIWebViewDelegate>
,与self
的类型不匹配,self
是ViewController(在您的情况下,我认为类名是UIWebViewViewController,这是基于您评论中的异常)。您可以通过以下一种或两种方式来解决此问题:要么以以下方式将Self
强制转换:webView.delegate = (id)self;
,要么在类(.h文件)中声明委托:@interface ViewController : UIViewController <UIWebViewDelegate>
。如果这不能帮助您,请告诉我。 - Rohit Gupta