2012-07-06 96 views
2

我很新的Xcode ...我有一個頁面iOS應用程序,只是有一個UIWebView打開特定的URL。我想要在Safari中打開target="_blank"的網頁中的任何鏈接,而不是在應用內部打開。Xcode在Safari中打開目標= _blank鏈接

有人能告訴我如何做到這一點? (我到處搜索過),並告訴我在哪些文件和代碼放在哪裏?謝謝你太多了!

編輯

我實現下面的代碼在我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;我得到一個黃色警告說: 分配到「身份證'從不兼容的類型'UIWebViewViewController * const_strong'

什麼是這個錯誤,我該如何解決它在Xcode?

回答

1

上SO可以解決你的問題或至少給你如何達到你正在嘗試做一些想法也許以下的答案: UIWebView open links in Safari

+0

在我原來的問題中我更新的代碼對我有用,但是你能幫我解決這個錯誤嗎? – adamdehaven 2012-07-06 14:17:17

+1

webview'webView.delegate'的delegate屬性的類型爲'id ',它與'self'的類型不匹配,它是ViewController(_你的情況我認爲類名是UIWebViewViewController,這是基於異常的你的評論_)。你可以通過一種或兩種方式解決這個問題:或者通過'webView.delegate =(id)self;'或者通過在類(.h文件)中聲明委託來''self''自定義'@interface ViewController:UIViewController '' 。讓我知道如果這沒有幫助。 – 2012-07-07 07:22:30

0

這是我們解決它的辦法:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    first.delegate = (id)self; 
       [first loadRequest:[NSURLRequest requestWithURL:[NSURL  URLWithString:@"http://www.website.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 == UIWebViewNavigationTypeOther) { 
     NSString *checkURL = @"http://www.linkyouwanttogotoviasafari.com"; 
     NSString *reqURL = request.URL.absoluteString; 
     if ([reqURL isEqualToString:checkURL]) 
      { 
       [[UIApplication sharedApplication] openURL:request.URL]; 
      return false; 
    } 
     else { 
      return true; 
     } 
    } 
    return true; 
} 
+0

只有當你知道你想在Safari瀏覽器中打開的確切網址時,這個功能纔是真正的好處,並且不會在其上設置target =「_ blank」'的任何通用鏈接 – Russ 2015-05-21 18:38:29

相關問題