如何检测用户是否第一次打开应用程序

时间:2013-09-11 14:45:48

标签: iphone ios

是否可以使用iOS检测用户是否第一次打开Objective-C应用程序?

我希望在用户首次打开应用时显示欢迎消息,但之后不会向他们显示。

我正在寻找类似的东西:

BOOL firstTime = [AppDelegate isFirstTimeOpeningApplication]

5 个答案:

答案 0 :(得分:3)

在应用的偏好设置中查找某些值,或者存在某些文件。如果您没有找到它,您的应用程序将首次运行,因此请将预期值写入首选项或创建文件,以便下次运行应用程序时您将知道这不是第一次。

如果您存储第一次运行的时间和日期而不是标记,则可以确定自应用程序使用以来的时间长度。如果用户在很长一段时间内没有使用您的应用,您可能希望您的应用就像第一次运行一样。

请注意,此技术仅在用户未删除您的应用时才有效。删除应用时,会删除其所有数据。如果您想知道您的应用之前是否在该设备上运行,即使之后已将其删除,您也需要记录信息以在其他地方识别设备,例如在您自己的服务器上。

答案 1 :(得分:1)

您可以在NSUserDefaults中保存“我之前运行”标志。

答案 2 :(得分:1)

使用NSUserDefaults

//In applicationDidFinishLaunching:withOptions:
BOOL hasLaunchedBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"AppHasLaunchedBefore"];
if(!hasLaunchedBefore) {
    //First launch
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"AppHasLaunchedBefore"];
}
else {
    //Not first launch
}

希望有所帮助!

答案 3 :(得分:0)

- (void)applicationDidFinishLaunching:(UIApplication *)application {
 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    NSString *firsttime = [defaults stringForKey:@"firsttime"];
    if (firsttime == nil) {

        TheOtherViewController *Other = [[TheOtherViewController alloc] initWithNibName:nil bundle:nil];
        Other.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        [window addSubview: Other.view];        

        [defaults setObject:@"lasttime" forKey:@"firsttime"];
    }   else {  [window addSubview:viewController.view];
        [window makeKeyAndVisible];
    }
}

答案 4 :(得分:0)

使用NSUserDefaults存储一个标志,该标志将指示用户之前是否已启动应用程序。如果flag ..的值允许说“IsFirstTimeLaunched”为false则表示用户之前没有启动过应用程序。