【iOS开发】判断app启动的方式(launchOptions)
来源:互联网 发布:注册域名能赚钱吗 编辑:程序博客网 时间:2024/06/15 11:37
iOS app启动的方式有哪些:
- 自己启动(用户手动点击启动)
- urlscheme启动(关于urlScheme的详解点击打开链接)
- 本地通知启动 (自己写的本地通知启动,蓝牙模块的启动,地理围栏的启动)
- 远程通知启动 (后台服务器的推送通知)
在appdelegate.m文件中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions系统给的一些关于launchoption的字典里面的内容
UIKIT_EXTERN NSString *const UIApplicationLaunchOptionsURLKey NS_AVAILABLE_IOS(3_0); // userInfo contains NSURL with launch URLUIKIT_EXTERN NSString *const UIApplicationLaunchOptionsSourceApplicationKey NS_AVAILABLE_IOS(3_0); // userInfo contains NSString with launch app bundle IDUIKIT_EXTERN NSString *const UIApplicationLaunchOptionsRemoteNotificationKey NS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED; // userInfo contains NSDictionary with payloadUIKIT_EXTERN NSString *const UIApplicationLaunchOptionsLocalNotificationKey NS_AVAILABLE_IOS(4_0) __TVOS_PROHIBITED; // userInfo contains a UILocalNotificationUIKIT_EXTERN NSString *const UIApplicationLaunchOptionsAnnotationKey NS_AVAILABLE_IOS(3_2); // userInfo contains object with annotation property listUIKIT_EXTERN NSString *const UIApplicationProtectedDataWillBecomeUnavailable NS_AVAILABLE_IOS(4_0);UIKIT_EXTERN NSString *const UIApplicationProtectedDataDidBecomeAvailable NS_AVAILABLE_IOS(4_0);UIKIT_EXTERN NSString *const UIApplicationLaunchOptionsLocationKey NS_AVAILABLE_IOS(4_0); // app was launched in response to a CoreLocation event.UIKIT_EXTERN NSString *const UIApplicationLaunchOptionsNewsstandDownloadsKey NS_AVAILABLE_IOS(5_0) __TVOS_PROHIBITED; // userInfo contains an NSArray of NKAssetDownload identifiersUIKIT_EXTERN NSString *const UIApplicationLaunchOptionsBluetoothCentralsKey NS_AVAILABLE_IOS(7_0); // userInfo contains an NSArray of CBCentralManager restore identifiersUIKIT_EXTERN NSString *const UIApplicationLaunchOptionsBluetoothPeripheralsKey NS_AVAILABLE_IOS(7_0); // userInfo contains an NSArray of CBPeripheralManager restore identifiersUIKIT_EXTERN NSString *const UIApplicationLaunchOptionsShortcutItemKey NS_AVAILABLE_IOS(9_0) __TVOS_PROHIBITED; // userInfo contains the UIApplicationShortcutItem used to launch the app.// Key in options dict passed to application:[will | did]FinishLaunchingWithOptions and info for UIApplicationDidFinishLaunchingNotificationUIKIT_EXTERN NSString *const UIApplicationLaunchOptionsUserActivityDictionaryKey NS_AVAILABLE_IOS(8_0); // Sub-Dictionary present in launch options when user activity is presentUIKIT_EXTERN NSString *const UIApplicationLaunchOptionsUserActivityTypeKey NS_AVAILABLE_IOS(8_0); // Key in user activity dictionary for the activity typeUIKIT_EXTERN NSString *const UIApplicationOpenSettingsURLString NS_AVAILABLE_IOS(8_0);// Keys for application:openURL:options:UIKIT_EXTERN NSString *const UIApplicationOpenURLOptionsSourceApplicationKey NS_AVAILABLE_IOS(9_0); // value is an NSString containing the bundle ID of the originating applicationUIKIT_EXTERN NSString *const UIApplicationOpenURLOptionsAnnotationKey NS_AVAILABLE_IOS(9_0); // value is a property-list typed object corresponding to what the originating application passed in UIDocumentInteractionController's annotation propertyUIKIT_EXTERN NSString *const UIApplicationOpenURLOptionsOpenInPlaceKey NS_AVAILABLE_IOS(9_0); // value is a bool NSNumber, set to YES if the file needs to be copied before use
如何判断呢?代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //用户自己点击启动 if(!launchOptions) { NSLog(@"用户点击app启动"); } else { NSURL *url = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey]; //app 通过urlscheme启动 if (url) { NSLog(@"app 通过urlscheme启动 url = %@",url); } UILocalNotification *localNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; //通过本地通知启动 if(localNotification) { NSLog(@"app 通过本地通知启动 localNotification = %@",localNotification); } NSDictionary *remoteCotificationDic = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; //远程通知启动 if(remoteCotificationDic) { NSLog(@"app 通过远程推送通知启动 remoteCotificationDic = %@",remoteCotificationDic); } } return YES;}
//位置变动的通知 if(launchOptions[@"UIApplicationLaunchOptionsLocationKey"]) { //写你的重新定位的代码 }
总结:当launchOptions为空时是用户自己点击app启动,不为空时,要根据相应的key是否存在来判断是通过哪种方式启动的。
0 0
- 【iOS开发】判断app启动的方式(launchOptions)
- ios 判断app 启动方式
- iOS app启动的方式
- (iPhone/iPad开发)怎样判断ios app 第一次启动
- iPhone/iPad开发)怎样判断ios app第一次启动
- (iPhone/iPad开发)怎样判断ios app第一次启动
- iOS app的启动方式识别
- 判断APP是启动方式
- ios开发-判断手机APP第一次启动
- iOS应用启动launchOptions字典中的key值
- 判断ios app 第一次启动
- 判断ios app第一次启动
- 判断iOS app 第一次启动
- 判断ios app 第一次启动
- iOS 第一次启动APP判断
- iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储
- 怎样判断ios app 第一次启动(做欢迎界面)
- iOS开发-APP启动过程
- NTP时间同步设置
- W3c html+css基础参考手册-2016-01参考
- 机器学习系列(5)_从白富美相亲看特征预处理与选择(上)
- C#对象深拷贝方法 - 通用版
- c++11move语意的便捷理解
- 【iOS开发】判断app启动的方式(launchOptions)
- Servlet运行原理及其生命周期
- 手机网页开发问题总结(一)
- 跑spark1.5.2 application报错
- haproxy 4层代理
- python抓取网页过程
- Linux procfs详解
- python获取知乎日报另存为txt文件
- Git及Github入门笔记