[英]objective c open links from UIWebView in safari
我有一個 UIViewController 子類,其中包括一個 UIWebView 並實現 UIWebViewDelegate。 我想要做的是讓在 UIWebView 中按下的鏈接在 safari 中打開。
我已經閱讀了過去有關此問題的問題,但仍然無法使其正常工作。 這是關於我所做的事情:
在我的 class 的- (void)viewDidLoad
方法中,我使用以下代碼:
[[self articleWebView] setDelegate: self];
[articleWebView loadRequest:requestObj];
我不想顯示在文章WebView object 中加載的整個 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 的代表有問題嗎?
我注意到您發布后沒有設置“articleWebView”的委托。
嘗試改用這個:
[articleWebView release];
articleWebView= [[UIWebView alloc] initWithFrame:CGRectMake(0,0,320,380)];
**articleWebView.delegate = self;**
[articleWebView loadHTMLString:content baseURL:[NSURL
URLWithString:@"http://www.mysite.gr/"]];
self.view = articleWebView;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.