关闭

如何判断用户是否为第一次进入app或者是第一次进入指定页面

标签: ios版本号判断第一次进入app
294人阅读 评论(0) 收藏 举报
分类:


1. 可以将版本号,或者判断第一次进入某页面的参数写在model中

#import <Foundation/Foundation.h>


@interface UserFirstLaunchModel : NSObject


@property (copy, nonatomic) NSString *appVersion;

@property (copy, nonatomic) NSString *appBuild;

@property (nonatomicBOOL isFirstLaunch;//第一次进入app

@property (nonatomic) BOOL isHomeControllerFirstLaunch;//第一次进入首页

@property (nonatomic) BOOL isOrderStatusControllerFirstLaunch;//第一次进入订单状态页

...


@end


2. 在app delegate中根据版本号判断是否第一次安装,取出缓存中的UserFirstLaunch对应的字典信息,与当前app比对版本号信息,如果不一致说明为第一次安装,就将app的版本号信息和首次进入的信息都初始化为YES后缓存到本地


- (void)judgeIsFirstLaunch{

    NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

    NSString *appBuild = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

//取出缓存中的UserFirstLaunch对应的字典信息,这里我把缓存中的信息整理放到单例中管理,意思知道了就可以了

    UserFirstLaunchModel *firstLaunchModel = [RMUserInfo shareInstance].firstLaunchModel;

    if ( ![firstLaunchModel.appVersion isEqualToString:appVersion] || ![firstLaunchModel.appBuild isEqualToString:appBuild]) {

        NSDictionary *firstLaunchDict = @{@"appVersion" : appVersion, @"appBuild":appBuild, @"isFirstLaunch": @YES

@"isHomeControllerFirstLaunch": @YES, @"isOrderStatusControllerFirstLaunch":@YES

};

        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

        [userDefaults setObject:firstLaunchDict forKey:@"UserFirstLaunch"];

        [userDefaults synchronize];

    }

}



3. 比如,要求第一次安装进入首页,加一个新手指引。就可以在viewDidAppear中判断是否为第一次安装进入首页,再添加一个新手指引的方法,然后在新手指引结束后修改本地信息。


//这是使用XSportView集成的新手指引方法,但是显示效果可能没有很理想,但是思路很好,你也可以把imageview铺到视图上,点击切换图片,最后移除

- (void)showXSportView{

    UserFirstLaunchModel *firstLaunchModel = [RMUserInfo shareInstance].firstLaunchModel;

    if (!firstLaunchModel.isHomeControllerFirstLaunch) {

        return;

    }

    

    TXHXSportLight *SportLight = [[TXHXSportLight alloc]init];

    SportLight.messageArray = @[

      @"这是《天下货》",

      @"点这里可以切换地址",

      @"点这里查看消息",

    ];

    SportLight.rectArray = @[

      [NSValue valueWithCGRect:CGRectMake(0, 0, 0, 0)],

      [NSValue valueWithCGRect:CGRectMake(kScreenWidth / 2, 40, 50, 20)],

      [NSValue valueWithCGRect:CGRectMake(kScreenWidth - 20, 40, 40, 40)]

    ];

    [self presentViewController:SportLight animated:false completion:^{

        NSMutableDictionary *firstLaunchDict = [firstLaunchModel mj_keyValues];//这边用的是MJExtention框架,总之意思对了就可以了

        [firstLaunchDict setObject:@NO forKey:@"isHomeControllerFirstLaunch"];//修改本地首次进入首页的信息,在做缓存,下次就不会走这个方法了。

        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

        [userDefaults setObject:firstLaunchDict forKey:@"UserFirstLaunch"];

        [userDefaults synchronize];

    }];

}


- (void)viewDidAppear:(BOOL)animated{

    [super viewDidAppear:animated];

    //设置状态栏文本颜色为白色

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

 

    [self showXSportView];

}





0
0
查看评论

判断是否第一次进入APP

判断是否第一次进入APP,如果是第一次进入,就跳到引导页面,否则,跳到主页面 WelcomeActivity: package com.ddgl.ddlx.activity; import android.content.Intent; import android.content.Shared...
  • rururu2211785113
  • rururu2211785113
  • 2016-12-07 16:32
  • 251

JS判断页面首次访问

web交流Q:460053411,欢迎留言! 页面首次访问判断 GO //1浏览器关闭则window.name为空,可以实现跨域,数据传递 // alert((window.name == "" ? "是" : "不是&q...
  • XiaoKangmemeda
  • XiaoKangmemeda
  • 2016-04-05 16:24
  • 1535

原生Js判断当前页面是否是第一次打开

原理是利用浏览器cook来判断,当当前页面不存在cook时就是第一次打开 代码:  function Cookie(key,value){ this.key=key; if(value!=null) { this.value=esca...
  • AloneAsFoam
  • AloneAsFoam
  • 2017-09-06 10:44
  • 474

swift判断app第一次启动

//appdelegate中写如下代码 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObje...
  • vistadk
  • vistadk
  • 2016-10-01 20:23
  • 1070

android 判断程序是首次(第一次)进入

很多时候,我们需要判断用户是不是第一次进入程序,以决定是不是给用户一些操作提示。 这种功能的实现,说到底还是将数据(一个标志位)存储起来,下次进入程序的时候读取数据进行判断。 我这里只给出一种较简单的实现方式,就是使用SharePerference来实现。 [jav...
  • shangandeyu_kun
  • shangandeyu_kun
  • 2016-05-03 16:41
  • 395

swift笔记 判断第一次程序启动

Swift2.0 判断第一次启动和保存 let ud = NSUserDefaults.standardUserDefaults() let firstLaunch:Bool = ud.boolForKey("Launched"); ...
  • SVALBARDKSY
  • SVALBARDKSY
  • 2016-04-04 17:28
  • 744

如何判断是否是第一次启动app

方法很多,我这里就简单介绍2种,写给初学者。。。(swift3.0)
  • qq_31901919
  • qq_31901919
  • 2016-09-27 14:39
  • 409

怎么判断页面是第一次打开还是刷新!

如果页面第一次打开的话就显示该图片,刷新,后退不显示该图片 <!-- function cc() { if(window.name=="") { AlertMsg(); } window.na...
  • ws_hgo
  • ws_hgo
  • 2010-02-27 10:08
  • 4099

android - 判断用户是否第一次进入应用程序

在android开发过程中,若是程序中有导航部分的话,导航部分的加载需要有个判断。只有在用户第一次运行使用此程序的时候,才会加载导航,以后运行程序都不会显示导航部分,这就需要用到一个判断:用户是否第一次运行此程序,核心代码如下所示: [java] view plaincop...
  • liyaming1
  • liyaming1
  • 2013-07-26 11:07
  • 2692

Js 判断页面是第一次加载

Js 判断页面是第一次加载
  • u011183394
  • u011183394
  • 2014-07-11 16:13
  • 6747
    个人资料
    • 访问:22129次
    • 积分:633
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:24篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论