Чтобы определить, было ли приложение запущено с помощью нажатия на уведомление, вам необходимо реализовать 2 метода.
Во-первых, в didFinishLaunchingWithOptions приложений, сделать что-то вроде:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
if ([launchOptions valueForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"]) {
// Handle notification
}
Второе:
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
if (application.applicationState == UIApplicationStateActive) {
// The app was open when a remote notification was received...
} else {
// The app was in the background and just came to the foreground in response to the user pressing the push notification
}
}
Вы можете посмотреть, какие типы уведомлений были включены с помощью:
UIRemoteNotificationType notificationTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
Однако вы не можете различать уведомления Banner или Alert.