我想知道是否有一种简单的方法可以向当前使用您的应用程序的所有用户发送通知。
因此,下次他们启动应用程序并将其连接到Wi-Fi时,会收到警告,告知他们,即“有更新可用”。
修改:
更详细地解释我在寻找什么。我正在开发一个应该只在它是最新版本的软件时使用的应用程序,所以我希望能够在AppStore中提供更新时发送消息(通知)。在一些游戏中可以看到这种情况,例如 AngryBirds 和 Cut the Rope 。
甚至可能会将代码中的BOOL更改为TRUE,如果{} BOOL为TRUE则会留下红色标记。 (当然首先我想要一个更基本的版本的答案。这也会有所帮助)
希望这可以解决问题。
关于,
SirKaydian
答案 0 :(得分:1)
您可以使用网络服务并比较应用程序的版本(可能将版本保存到NSUserDefaults),我确信还有其他解决方案,但我想到了这一点。如果版本不同,您可以显示链接到应用商店的提醒。
答案 1 :(得分:1)
本地通知解决方案
基本上奥斯卡之前说过,你可以把它变得非常简单。如果您想在每次启动应用程序后进行检查,您可以轻松地将某种本地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)