2012-11-21 250 views
1

我正嘗試打開與UIApplication的一個URL,但是當我運行:創建canOpenURL總是返回FALSE

[[UIApplication sharedApplication] canOpenURL:urlToUpdate 

URL以字符串和

NSString *urlStringToOpenEscaped = [urlStringToOpen stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

NSURL *urlToUpdate = [NSURL URLWithString:urlStringToOpenEscaped]; 

始終返回FALSE。

我檢查了可從iPad訪問的URL。

有什麼想法?

+0

能告訴你我們的網址字符串(urlStringToOpenEscaped)? – BergP

+0

肯定:'itms-services://?action = download-manifest&url = http:// address/App.plist' – xarly

+0

看看這裏的第一個答案中的評論。它可能有幫助。 http://stackoverflow.com/questions/4695180/wireless-iphone-app-distribution-problem-with-itms-services-protocol – NikosM

回答

1

canOpenURL方法不打算用於測試網絡url是否可到達。根據文檔:

這種方法可以保證,如果的OpenURL:被調用,另一個 應用將 推出來處理它。它不能保證完整的URL是有效的。

因此,它是一種知道由URL傳遞給方法的資源是否可以被系統上的應用程序訪問/打開的方法。

如果您想檢查網址是否可達,您必須執行該請求,然後在響應中處理結果。

+0

我知道了,所以在調用UIApplication之前,我使用NSURLConnection檢查了資源是否可用,並且我收到狀態200. 如果我在執行時刪除了[[[UIApplication sharedApplication] canOpenURL:urlToUpdate]'調用[[UIApplication sharedApplication] openURL:urlToUpdateWithHeaders];沒有工作,什麼都不做。 – xarly