检测首家推出与以前的版本的应用程序(Detecting the first launch of an

2019-10-20 08:08发布

我想更新的应用添加第一次启动之旅。 我通常会用某种处理这个NSUserDefaults关键。 不过,也有应用程序的发布已经预先存在的现有版本。

我怎样才能触发第一次启动该应用程序的某些行为,但仅用于全新安装而不是更新后的首次发射?

Answer 1:

您可以通过Web服务查看应用程序版本。 并提醒用户更新应用。 而这种情况下,需要连接互联网。



Answer 2:

在启动,检查是否与独特的当前运行的版本名称的文件/永久设置的存在。 如果它不存在,显示游览,然后点击文件/创建持久性设置。



Answer 3:

我可以找出迄今最好的办法是先发布一个版本,而不旅游但没有记录某种标志的NSUserDefaults的到。 然后,我可以希望,大多数现有的用户将更新和使用应用程序之前,我发动第二次更新包括游览。

我可以用@ rmaddy的建议,以寻找可能已被写入,以增加我的覆盖率任何其他先前存在的设置相结合这一点。

这是理想显然远远。



Answer 4:

最简单的方法是使用保存当前版本NSUserDefaults

if (![[NSUserDefaults standardUserDefaults] objectForKey:@"app_version"] || [[[NSUserDefaults standardUserDefaults] objectForKey:@"app_version"] integerValue] < [[[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleVersion"] integerValue]) {
    // new version detected!
    [[NSUserDefaults standardUserDefaults] setObject:[[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleVersion"] forKey:@"app_vervion"];
}

编辑新增检查用户默认存在了含有这种功能首次更新。

编辑II现在我明白你真正想要的。 你需要几乎我写了相同的代码:

if (![[NSUserDefaults standardDefaults] boolForKey:@"tour_done"]) {
    // present tour and that call:
    // [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"tour_done"];
    // [[NSUserDefaults standardUserDefaults] synchronize];
}


文章来源: Detecting the first launch of an app with previous versions