本地通知解决方案
基本上就像奥斯卡之前所说的那样,你可以让这变得非常简单。如果您想在每次启动应用程序后进行检查,您可以轻松地从您的应用程序调用某种本地 API(或类似的)调用到您可能托管的 Web 服务。例如,您有一个 PHP 文件:
<?php
$currentVersion = 1.3;
echo $currentVersion;
?>
每当您发布更新时,您都可以更新这个简单的 PHP 脚本。iPhone 可以通过在每次启动时查询该 PHP 文件来识别这一点(检查 NSURLConnection 委托方法以获取来自任何特定 URL 的响应)。现在,根据您的应用程序先前的检查,它可以通过以下方式将这些检查存储在 NSUserDefaults 值中:
NSUserDefaults *defaults = [[NSUserDefaults alloc] init];
NSString *loadedVersion = [defaults valueForKey:@"MYAPP_CURR_VERSION"];
现在我们需要从您的 NSURLConnection 委托方法中比较两者,该方法从您的 Web 服务上的 PHP 文件接收字符串。
NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.website.com/folder/version.php"]];
[urlRequest setHTTPMethod:@"GET"];
[urlRequest setHTTPBody:[postParams dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];
[connection start];
上面的代码会将请求发送到您告诉它的服务器 URL。现在,当我们得到响应时,我们会这样做:
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
NSString *responseVersionFromServer = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if(![loadedVersion isEqualToString:responseVersionFromServer]) {
//execute code here to show a local notification or UIAlertView
}
}
这将为您完成所有比较。
注意:您必须在 .h 头文件中添加 NSURLConnectionDelegate!
推送通知解决方案
有一些服务允许您的应用程序具有推送通知,例如 Urban Airship,您可以登录并在更新可用时向所有用户发送推送通知。使用起来真的很简单,看看他们的网站。(www.urbanairship.com)