iOS:处理远程(推送)通知

Jim*_*Jim 2 apple-push-notifications ios

我正在尝试使用远程通知处理所有可能的情况.应用程序在前台时我很好 - 调用didReceiveRemoteNotification.问题是当应用程序处于后台状态时,我收到推送通知.什么都没有.当应用程序回到前台时,如何让用户知道他有新的远程通知?

Fry*_*Fry 6

拦截推送通知的唯一方法是当用户点击通知中心的通知时(或从锁定屏幕滑动应用程序图标时).

在这种情况下,在app进入前台之前,didFinishLaunchingWithOptions会调用app delegate中的方法.您应该使用它NSDictionary launchOptions来确定应用程序是从通知中心启动还是通过点击图标(正常使用)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSDictionary *pushDic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
    if (pushDic != nil) {
        NSLog(@"Notification");
    }
    else {

    }
}
Run Code Online (Sandbox Code Playgroud)

  • UIApplicationLaunchOptionsRemoteNotificationKey实际上是一个定义的常量而不是字符串值 (5认同)