点击通知栏的通知进入程序时,会触发App Delegate里的方法,分为以下两种情况:
1、程序未启动(即底部任务栏里没有进程)时。
此种情况下,点击通知栏的通知进入程序,会触发以下方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
对于launchOptions参数,需要经过以下处理:
NSDictionary* pushNotificationKey = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
其中的pushNotificationKey才是从服务端推送过来的数据,使用键值对方式就可以读取服务器传递过来的额外参数了。
2、程序已启动。
如果程序已经启动,并驻留在内存中,不管程序是在前台(Foreground)还是在后台(Background),如果点击通知栏的通知进入程序将触发以下方法:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
其中的userInfo参数,就已经是服务端推送过来的数据,也是采用键值对方式进行读取。