给启动页加上一页广告页,在收到通知跳应用是,不走启动页的rootvc设置方法。
做的判断是if(launchOptions){有通知,走有通知的}else{没有通知,走启动页}
遇到的问题是:在APP Store更新后打开应用,初次安装,走不到初次安装的方法,而是走了启动页那一套。
if([UIApplication sharedApplication].applicationState==UIApplicationStateInactive){
NSLog(@"程序在运行状态");
}
新建一个任意类型的iOS应用工程,在AppDelegate.h中会看到
AppDelegate :UIResponder
即本类实现(采纳)了一个名叫UIApplicationDelegate的接口,且表明AppDelegate这个类就是这个工程中UIApplication实例的代理类。
看看main函数:
intmain(intargc,char*argv[])
{
@autoreleasepool{
returnUIApplicationMain(argc, argv,nil,NSStringFromClass([AppDelegateclass]));
}
}
这里传入了代理类到UIApplicationMain函数中,UIApplicationMain函数在生成唯一一个UIApplication的时候就可以把代理类的实例指针告诉这个单例对象了。
在UIApplicationDelegate中有很多方法,最重要无非就是
iOS程序启动时总会调用此方法,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有此程序启动的原因。例如:若用户直接启动,lauchOptions内无数据; 若由其他应用程序通过openURL:启动,则lauchOptions==UIApplicationLaunchOptionsURLKey对应的对象为启动URL(NSURL),lauchOptions==UIApplicationLaunchOptionsSourceApplicationKey对应启动的源应用程序的bundle ID (NSString)。
原因是launchOptions不一定是收到通知,还有很多别的原因(详见apple文档)。