应用程序更新通知的文档

4
有没有文档说明当Appstore上的应用程序更新时,Appstore本身会向用户发送有关更新的推送通知?

我怀疑这方面没有任何文档,因为这是不正确的。更新推送通知是由开发人员发起的,而不是应用商店。 - Stavash
谢谢。但是如何在代码中检查应用程序是否已更新并提供推送通知? - Prerna chavan
1
如果你在谈论自己的应用程序,那么你应该知道何时有更新可用。如果你在谈论一个可以在任何应用程序有更新时触发警报的应用程序,那我不知道,但听起来非常复杂。 - Stavash
但是我认为当我在Appstore上更新应用程序时,它会在Appstore上显示一个标记,表示有可用的更新。 - Prerna chavan
那是操作系统处理内部通知,你无法拦截。 - Stavash
1个回答

9

你可以使用搜索API来实现这个功能。在你的应用程序中,在启动后,检查AppStore上你的应用程序的最新版本。像这样:

- (void) checkForUpdates
{
    NSString *jsonUrl = @"http://itunes.apple.com/search?term=yourAppName&entity=software&limit=1";
    NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:jsonUrl]];

    JSONDecoder *jsonKitDecoder = [JSONDecoder decoderWithParseOptions:JKParseOptionNone];
    NSObject *jsonObject = [jsonKitDecoder objectWithData:jsonData error:nil];
    int results = [[jsonObject valueForKey:@"resultCount"] intValue];

    if(results >0) // has results
    { 
        NSArray *results = [jsonObject valueForKey:@"results"];
        for(NSObject *aResult in results) 
        {
            NSString    *appStoreVersion = [aResult valueForKey:@"version"];
            NSString    *localVersion    = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

            if(![appStoreVersion isEqualToString:localVersion])
            {
                 //there is an update available. Go crazy.
            }
        }
     }
}

我使用了JSONKit来处理这个问题…你可以使用任何你喜欢的库来解析由苹果返回的JSON。
注意:你可以使用这个方法在用户打开应用时通知他有更新。如果你想让用户在更新上线后立即得到通知,你需要使用推送通知。
希望这会有所帮助。
祝好!

我该如何测试这个?有人可以帮忙吗? - user1949873
1
@user1949873:例如将您的应用程序版本设置为5.0。然后将“yourAppName”替换为...假设是“Angry+Birds+Free”。该应用程序当前的版本为1.5.1,与您设置的值(5.0)不同,因此您将进入该“if”语句中。希望这可以帮助您。干杯! - George

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接