iOS push notification received when app is running in foreground

后端 未结 3 1669
旧时难觅i
旧时难觅i 2021-01-19 04:54

From my understanding, when app is running or in the foreground and a push notification is received, the app should NOT show any alert but the app delegate will call the

相关标签:
3条回答
  • 2021-01-19 05:37

    This answer is for swift users looking for the same thing

    let state = application.applicationState
    
            if (state == .active) {
                //app is in foreground
                //the push is in your control
            } else {
                //app is in background:
                //iOS is responsible for displaying push alerts, banner etc..
            }
    

    Please refer to the checked answer if you guys have any more doubts. Apple Documentation on handling Notifications

    0 讨论(0)
  • 2021-01-19 05:40

    When the App is in foreground, it should not display anything.

    If you see alertView, it means you provided code for it.

    Something along the following lines:

    -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    {
        UIApplicationState state = [application applicationState];
    
        if (state == UIApplicationStateActive) {
            //app is in foreground
            //the push is in your control
        } else {
            //app is in background:
            //iOS is responsible for displaying push alerts, banner etc..
        }
    }
    

    If you have implemented pushNotificationDelegate

    [UAPush shared].pushNotificationDelegate = self;
    

    then override, and leave it blank

    - (void)displayNotificationAlert:(NSString *)alertMessage
    {
      //do nothing
    }
    
    0 讨论(0)
  • 2021-01-19 05:44

    You are most likely seeing the additional push notification because of the way Urban Airship is configured in your code. From Urban Airship's docs:

    The sample UI includes an implementation of UAPushNotificationDelegate that handles alerts, sounds, and badges. However, if you wish to customize this behavior, you can provide your own implementation:

    [UAPush shared].pushNotificationDelegate = customPushDelegate;

    There is more information on the proper way to handle push notifications with Urban Airship in their support articles. Since you are using UA, I would recommend that you use their delegates etc. to handle incoming push notifications while in the foreground rather than implementing your own code in the didReceiveRemoteNotification app delegate method.

    Hopefully that helps...if not, please post your code so that we can decipher what is going on. This would be very odd behavior indeed!

    0 讨论(0)
提交回复
热议问题