How to handle push notifications if the application is already running?

后端 未结 4 1059
梦谈多话
梦谈多话 2020-12-02 05:02

How do we handle push notifications if the application is already running ? I want to show an alert if the application is running (instead of a push notification al

4条回答
  •  青春惊慌失措
    2020-12-02 05:36

    Iterating the 3 levels of payload

     - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    
    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
        NSString *message = nil;
    
    NSDictionary *aps = [NSDictionary dictionaryWithDictionary:(NSDictionary *) [userInfo objectForKey:key] ];   
        for (id key1 in aps){
             NSLog(@"key1: %@", key1);
            id alert = [aps objectForKey:key1];
            if ([alert isKindOfClass:[NSDictionary class]]) {
                message = [alert objectForKey:@"body"];
                 NSLog(@"body: %@, value: %@", key1, message);
                message = [alert objectForKey:@"loc-args"];
                NSLog(@"loc-args: %@, value: %@", key1, message);
                NSArray *args = (NSArray *) [alert objectForKey:@"loc-args"] ;
                    for (id key2 in args){
                        NSLog(@"key2: %@, value: ", key2);
                    }
                message = [alert objectForKey:@"action-loc-key"];
                NSLog(@"action-loc-key: %@, value: %@", key1, message);
    
            }
            else if ([alert isKindOfClass:[NSArray class]]) {
                for (id key2 in key1){
                    NSLog(@"key2: %@, value: %@", key2, [key1 objectForKey:key2]);
                }
            }
            else if([key1 isKindOfClass:[NSString class]]) {
                message = [aps objectForKey:key1];
                NSLog(@"key1: %@, value: %@", key1, message);
            } 
    
        }
      } 
    

    }

    The result is:

    2012-01-27 20:38:09.599 SPush[4181:707] key: aps, value: {
    alert =     {
        "action-loc-key" = Open;
        body = test;
        "loc-args" =         (
            1000,
            2000
        );
    };
    badge = 0;
    "content-available" = 10;
    sound = default;
    }
    2012-01-27 20:38:13.133 SPush[4181:707] key1: alert
    2012-01-27 20:38:13.134 SPush[4181:707] body: alert, value: test
    2012-01-27 20:38:13.137 SPush[4181:707] loc-args: alert, value: (
    1000,
    2000
    )
    2012-01-27 20:38:13.138 SPush[4181:707] key2: 1000, value: 
    2012-01-27 20:38:13.139 SPush[4181:707] key2: 2000, value: 
    2012-01-27 20:38:13.140 SPush[4181:707] action-loc-key: alert, value: Open
    2012-01-27 20:38:13.141 SPush[4181:707] key1: sound
    2012-01-27 20:38:13.143 SPush[4181:707] key1: sound, value: default
    2012-01-27 20:38:13.144 SPush[4181:707] key1: badge
    2012-01-27 20:38:13.145 SPush[4181:707] key1: badge, value: 0
    2012-01-27 20:38:13.146 SPush[4181:707] key1: content-available
    2012-01-27 20:38:13.147 SPush[4181:707] key1: content-available, value: 10
    

提交回复
热议问题