2011-05-26 144 views
6

我想在我的webView中打開iTunes鏈接,但是當webView啓動頁面時,它會重定向到Safari瀏覽器。在那裏,網址被打開,但我希望它在我的webView中打開。UIWebView鏈接在Safari中打開

- (void)viewDidLoad { 

    NSString *urlAddress = @"http://itunes.apple.com/us/app/foodcheck-traffic-light-nutrition/id386368933?mt=8"; 

    //Create a URL object. 
    NSURL *url = [NSURL URLWithString:urlAddress]; 

    //URL Requst Object 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 

    //Load the request in the UIWebView. 
    [webView loadRequest:requestObj]; 

    [super viewDidLoad]; 
} 

請提出一種解決此問題的方法。

回答

1

您可能需要在運行應用程序時嘗試記錄加載請求。這可能是蘋果會自動將http://更改爲itms-appshttp://phobos或沿着這些線路。如果是這樣,那麼你可以使用類似這樣的方式阻止負載:

- (BOOL)webView:(UIWebView *)webView 
shouldStartLoadWithRequest:(NSURLRequest *)request 
navigationType:(UIWebViewNavigationType)navigationType; 
{ 
    NSURL *loadURL = [[request URL] retain]; 
    NSLog(@"%@",loadURL); 
    if([[loadURL absoluteString] hasPrefix:@"http://"]) 
    { 
     [loadURL release]; 
     return TRUE; 
    } 
    [loadURL release]; 
    return FALSE; 
} 

祝你好運。我很想知道最後的作品。

+0

非常感謝您的非常快response.But它仍然沒有顯示。 – Gypsa 2011-05-26 04:50:43

+0

你從日誌中得到什麼?是否有重定向? – PengOne 2011-05-26 04:52:23

+0

使用PengOne的代碼,你需要在你的ViewController中實現UIWebViewDelegate以及在viewDidLoad中爲你的WebView設置委託 – Xuvi 2011-05-26 05:09:44

0

不知道,如果你曾經得到它的工作,但是這很適合我:

NSString *responseString = [NSString stringWithContentsOfURL:myURL]; 
[self.webView loadHTMLString:responseString baseURL: nil)]; 
相關問題