iOS 如何第一次打开App 时展示软件新特性

  • 首先需要获得当前软件的版本号,通过和'旧'版本号比对判断出 app 是否第一次打开,是否需要展示当前软件的新特性引导页面.

  • 版本号在主资源包的 Info.plist 文件中.

Info.plist
  • 但是在 info.plist 中存储的键值不是真实的,所以我们通过查看 Source Code 的方式获得版本号的真实键值
Source Code
  • 我们在第一次打开软件时,将当前版本存入用户偏好设置.

  • 下次打开的时候,拿出上次手动存储的版本号与软件版本号进行比对.就可以判断出当前软件是否第一次打开.

  • 实现代码如下


@implementation XBVersion

+ (instancetype)chooseRootViewController{

    // 取出当前软件版本号
    NSString *curVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];
    NSLog(@"Current Version -- %@",curVersion);

    // 取出上次手动存储的版本号
    NSString *oldVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"VersionKey"];
    NSLog(@"Old Version -- %@",oldVersion);

    // 比对当前软件是否第一次打开
    if ([curVersion isEqual:oldVersion]){
        NSLog(@"没有新特性");
    } else {
        NSLog(@"有新特性");
        // 手动将当前版本存入偏好设置
        [[NSUserDefaults standardUserDefaults] setValue:curVersion forKey:@"VersionKey"];
    }

    return nil;
}

@end

代码运行效果如下

第一次打开时
  • 由于第一次打开, Old Version 的内容我们还没有手动添加,明显可以看到当前软件是第一次打开.
下次在打开时
  • 成功读取版本信息,可以有效的避免新特性被重复多次的展示.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,014评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,678评论 25 708
  • 7月21日是我们在省委党校学习培训的第五天,徐州分行的小伙伴们依旧朝气蓬勃,每节课都热情饱满,尤其是今天下...
    皮毛250阅读 299评论 0 0
  • 首先从官网上下载内核源码。 kernel download这里我们下载tar.xz的压缩包。 XZ压缩最新压缩率之...
    AweS77阅读 614评论 0 1
  • 惟愿把过去都丢弃 单单对那些不美的事失去记忆 可现实总与我美好的心灵大相径庭 新的一天产生了 你该怎么管理他 是任...
    青果未熟阅读 154评论 0 2