0

我想知道是否有一种简单的方法可以向当前使用您的应用程序的所有用户推送通知。

因此,下次他们启动应用程序并连接到 Wi-Fi 时,他们会收到一条警报,告诉他们“有可用更新”。


编辑

更详细地解释我在寻找什么。我正在开发一个应用程序,该应用程序仅应在该软件的最新版本时使用,因此我希望能够在 AppStore 中有可用更新时发送消息(通知)。这在一些游戏中可以看到,例如AngryBirdsCut the Rope

甚至可能将代码中的 BOOL 更改为 TRUE,如果{} BOOL 为 TRUE,则会留下红旗。(当然,首先我想要一个更基本版本的答案。这也会有帮助)

希望这可以解决问题。


带着敬意,

凯迪安爵士

4

2 回答 2

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)

于 2012-07-31T03:45:05.407 回答
1

您可以使用 Web 服务并比较您的应用程序的版本(也许将版本保存到 NSUserDefaults),我敢肯定还有其他解决方案,但我想到了这个。如果版本不同,您可以显示链接到应用商店的警报。

于 2012-07-31T01:09:33.707 回答