2010-03-10 37 views
1

我有一個包含鏈接的UIWebView。這些鏈接應該在我的應用內的另一個視圖中打開,除了包含「mailto」的鏈接。要做到這一點,我使用的是UIWebViews中代表內部下面的代碼:HTML鏈接無法在iPod Touch上打開

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) 
    { 
     NSRange mailPos = [[[request URL] absoluteString] rangeOfString:@"mailto:"]; 
     if (mailPos.location == NSNotFound) 
     { 
      self.parent.browserView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
      [self.parent.setupViewC presentModalViewController:self.parent.browserView animated:TRUE]; 
      [self.parent.browserView.wvMainView loadRequest:request]; 
     } 
     else [[UIApplication sharedApplication] openURL:request.URL]; 
     return FALSE; 
    } 
    return TRUE; 
} 

這在模擬器和iPhone上的工作正常 - 但它不會在iPod在所有的工作。點擊一個鏈接就不會在iPod Touch上做任何事情。然而

上的UIButton點擊後調用

[self.parent.browserView.wvMainView loadRequest:request]; 

確實工作。 那麼有什麼方法可以使UIWebView內的鏈接在iPod上工作嗎?

+0

iPod是否在Mail應用程序中設置了郵件帳戶?我不確定這會阻止你使用openURL方法打開一個mailto:url,但它很長。 – Jasarien 2010-03-10 17:04:35

+0

在想同樣的事情。 +1對Jasarien – Andiih 2010-03-10 19:37:37

+0

我不確定郵件帳戶設置,但正常的http鏈接也不適用於iPod。在我的測試iPhone上,沒有配置任何郵件帳戶,郵件和標準http鏈接都可以正常打開。我已經在4款iPhone和2款iPod上測試過了 - 兩款iPod都不會打開任何來自我的UIWebView的鏈接,所有iPhone都會打開所有鏈接。 – 2010-03-11 08:56:36

回答

0

嘗試運行[[UIApplication sharedApplication] openURL:request.URL]; 在主線程

在其他情況下,嘗試以下

[自performSelectorOnMainThread:.....]