我有一个 UIViewController 子类,它包含一个 UIWebView 并实现了 UIWebViewDelegate。我想要做的是在 UIWebView 中按下链接以在 safari 中打开。
我已经阅读了过去有关此问题的问题,但仍然无法使其正常工作。这是关于我所做的事情:
在- (void)viewDidLoad
我的课堂方法中,我使用以下代码:
[[self articleWebView] setDelegate: self];
[articleWebView loadRequest:requestObj];
我不想显示在 articleWebView 对象中加载的整个 html 页面,所以在-(void)webViewDidFinishLoad:(UIWebView *)webView
我使用的方法中:
NSString *content = [articleWebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('myDivId')[0].outerHTML;"];
然后我清空(释放)articleWebView 并加载内容:
[articleWebView release];
articleWebView= [[UIWebView alloc] initWithFrame:CGRectMake(0,0,320,380)];
[articleWebView loadHTMLString:content baseURL:[NSURL URLWithString:@"http://www.mysite.gr/"]];
self.view = articleWebView;
我尝试使用以下内容,但它不起作用
-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL* url = [request URL];
if (UIWebViewNavigationTypeLinkClicked == navigationType)
{
[[UIApplication sharedApplication] openURL:url];
return NO;
}
return YES;
}
任何想法我错过了什么?
先感谢您。
编辑:正如我所见, shouldStartLoadWithRequest 没有被调用,所以我猜我的 webView 的代表有问题?