如何在ios上收到所有收到的通知

时间:2013-03-07 15:33:29

标签: ios notifications push-notification apple-push-notifications

启动iOS应用时,如果将推送通知发送到设备,是否可以通知? (我想访问有效负载以从通知中检索信息)

谢谢,

2 个答案:

答案 0 :(得分:1)

来自UIApplicationDelegate的方法可以从中查看是否收到通知

您可以在AppDelegate didFinishLaunchingWithOptions方法中看到,如果用户使用通知启动了应用,例如

UILocalNotification *notif =
    [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotif) {
        irLog(@"Recieved Notification");
    }

对于您发布的本地通知,您可以查看此方法

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif

对于远程通知,您可以查看此方法

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

答案 1 :(得分:1)

您应该在代码中添加以下内容:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions {

    NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];

    //Accept push notification when app is not open
    if (remoteNotif) {      
        [self handleRemoteNotification:application userInfo:remoteNotif];
        return YES;
    }

    return YES;
}

请注意,如果通过点击通知启动应用,您将只获得推送通知有效内容。如果通过点击应用图标启动它,则无法获得有效负载。