2011-01-12 42 views
10

如果iOS SDK沒有這個功能,那麼如果我有一個基本(靜態)網站,並且在該網站上某處我手動設置了一段數據,該數據在應用商店中指定了我的應用的最新版本每次我發佈更新?如何讓我的應用程序查詢該版本數據的網站,並根據在iOS設備上運行的版本進行檢查?根據應用商店中的最新版本檢查當前版本的應用,最簡單的方法是什麼?

+0

我不知道蘋果爲什麼不提供一種機制來通過iTunes框架等來檢查信息。 – 2012-07-19 06:36:29

回答

12

您正處於正確的軌道上。您需要向靜態版本網頁發出HTTP請求。要做到這一點,你可以使用一個NSURLConnection對象。所以喜歡的東西:

NSURL * url = [NSURL URLWithString:@"http://yourweb.com/version.txt"]; 
NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60]; 
_connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

然後在您的委託實現:

(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSHTTPURLResponse*)response 
{ 
    if(response.statusCode != 200) 
     // you got an error 
} 

- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error 
{ 
    // again with the errors ... 
} 

// you got some data ... append it to your chunk 
// in your case all the data should come back in one callback 
- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data 
{ 
    [mData appendData:data]; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    // your request finished ... check the version here 
} 

所以在你connectionDidFinishLoading看看MDATA你已經收集。解析出的版本號,並將其與你的包的版本號:

[self infoValueForKey:@"CFBundleVersion"]; 
+0

很簡單,那應該很好,謝謝! – BeachRunnerFred 2011-01-13 00:02:38

1

我用了很多我的應用程序的建議同樣的解決方案@RedBlueThing。我已將其擴展到其他應用程序開發人員可使用的服務CleverStork - Update Manager for Apps。希望你們喜歡它:)

相關問題