用户通过点击通知(包括本地和远程通知)打开应用时,在不同的情况下,会调用不同的方法.其实也是比较简单,在此记录一下,备忘
#### 注意:如果程序在前台运行,将无法看到任何通知(本地或者远程)
#### 本地通知
在 AppDelegate
中
A. 如果程序尚未退出 (在后台)则调用-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
B. 如果程序已经退出,则是调用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
其实所有程序刚打开,均会执行这个方法,对本地通知而言,特别之处是在参数 launchOptions
中,UIApplicationLaunchOptionsLocalNotificationKey
是有值的. 用法[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
远程通知基本相似
#### 远程通知
在 AppDelegate
中
A. 如果程序尚未退出 (在后台)则调用-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
B. 如果程序已经退出,则是调用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
其实所有程序刚打开,均会执行这个方法,对本地通知而言,特别之处是在参数 launchOptions
中,UIApplicationLaunchOptionsRemoteNotificationKey
是有值的. 用法[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];