IOS中如何判断APP是否安装后首次运行或升级后首次运行

对于是否为首次安装的App可以使用如下方法来判断

[[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"];

如果App是通过App Store升级的话可以通过版本号来判断

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

实际使用可以在didFinishLaunchingWithOptions:中添加如下代码

    if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) {
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
        NSLog(@"安装之后首次开启App");
        //获取当前App版本号并存入NSUserDefaults中
        NSString* appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
        [userDefaults setObject:appVersion forKey:@"appVersion"];
        [userDefaults synchronize];
    }
    else {
        //根据版本号判断是否更新后首次启动
        NSString* appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
        NSString* localVersion = [userDefaults stringForKey:@"appVersion"];
        if ([appVersion isEqualToString:localVersion]) {
            NSLog(@"安装或升级之后并非首次开启App");
        }
        else {
            NSLog(@"升级之后首次开启App");
            //将当前App版本号存入NSUserDefaults中
            [userDefaults setObject:appVersion forKey:@"appVersion"];
            [userDefaults synchronize];
        }
    }
时间: 2024-07-29 17:58:19

IOS中如何判断APP是否安装后首次运行或升级后首次运行的相关文章

sharepoint server 2016 解决升级补丁kb3141515后提示 错误:升级后的数据库架构与目标架构不匹配

未能升级 SharePoint 产品. This is a critical task. You have to fix the failures before you can continue. Follow this link for more information about how to troubleshoot upgrade failures: http://go.microsoft.com/fwlink/?LinkId=259653 -----------------------

iOS中如何知道app版本已更新

主要用于程序升级,开启程序后是否显示新特性两个方面. 1.苹果app版本 苹果规定,程序的版本只能升不能降.例如1.0->1.1可以,1.1->1.0就不可以,不允许上架. 2.app版本存放位置 版本信息存放在Info.plist文件中,在工程的General栏中也可以看到.当app更新后,这里的版本信息会自动修改,因此获取Info.plist中的版本信息即为最新的版本.如果想人为的修改它们在两处的任意一处均可.  3.代码实现(Swift) 程序中将上次的版本保存入沙盒,然后和最新的做比较

iOS中html打开APP传参

1.在项目info.plist中添加URL Types以供html调用 2.html代码 <html> <head lang="en"> <meta charset="UTF-8"> <title>支付页面</title> </head> <script type="text/javascript"> var url = location.search; //获取

iOS中两个APP之间的跳转和通信

app间的跳转 一:在第一个app首先要做下面这些操作: 1.在info.plist文件中的Information Property List下添加一项:URL types. 2.点开URL types下的item 0,再点开item 0,将item 0下的URL identifier改为URL Schemes. 3.点开URL Schemes下的item 0,在它后面添加skipOne(skipOne为第一个app的跳转标识,这里根据你自己写的来) 二:在第二个app中,在需要跳转到第一个ap

Xamarin.Forms 中iOS通过URL Scheme判断应用是否安装

Xamarin.Forms 中iOS通过URL Scheme判断应用是否安装 在移动应用开发中,经常需要判断一个app是否安装,iOS中有什么方式可以判断app是否安装呢? 这里介绍通过Url Scheme来判断应用是否安装. Url Scheme在这里就不详讲了,可以看文章URL Schemes 使用详解. 首先我们来看看在原生iOS开发中Objective-C如何编写判断代码: if ([[UIApplication sharedApplication] canOpenURL:[NSURL

iOS中的事件传递和响应者链条

iOS中的事件传递和响应者链条 本文转自:http://www.linuxidc.com/Linux/2015-08/121270.htm 首先我们来看看ios中事件的产生和传递过程 1.发生触摸事件后,系统会将事件加入到一个由UIApplication管理的队列事件中来 2.UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常会发发送事件给应用程序的主窗口 3.主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件 4.找到合适的视图控件后,就会调用视图

iOS中的堆(heap)和栈(stack)的理解

操作系统iOS 中应用程序使用的计算机内存不是统一分配空间,运行代码使用的空间在三个不同的内存区域,分成三个段:“text segment “,“stack segment ”,“heap segment ”. 段“text segment ”是应用程序运行时应用程序代码存在的内存段.每一个指令,每一个单个函数.过程.方法和执行代码都存在这个内存段中直到应用程序退出.一般情况下,你不会真的不得不知道这个段的任何事情. 当应用开始以后,函数main() 被调用,一些空间分配在”stack” 中.这

Msys2升级后不能编译

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

HTML中判断手机是否安装某APP,跳转或下载该应用

有些时候在做前端输出的时候,需要和app的做些对接工作.就是在手机浏览器中下载某app时,能判断该用户是否安装了该应用.如果安装了该应用,就直接打开该应用:如果没有安装该应用,就下载该应用.那么下面就对在浏览器中,用js判断某用户是否安装了该应用,并判断是否打开该应用做个简单的介绍. 那么,怎么判断某用户是否安装了某应用呢? 在这里,先写段html代码,如下: <!doctype html> <html> <head> <meta charset="ut