远程推送通知

Posted

技术标签:

【中文标题】远程推送通知【英文标题】:Remote push notifications 【发布时间】:2012-04-24 12:49:00 【问题描述】:

当应用程序不在前台或后台运行时,我们能否接收?基本上应用程序被杀死了?

【问题讨论】:

how can I handle push notification when my app is not running 的可能重复项 【参考方案1】:

是的,即使应用程序未运行,您仍会收到推送通知。

【讨论】:

只有在任何其他情况下在前台运行时,您的应用才会直接收到通知 ios 会向用户显示收到通知的消息。只有在用户为您的应用选择通知后,您的应用才会启动。 @rckoenes 你是对的。但我的也是对的。当您的应用未运行时,当您的应用有推送通知时,您的手机仍会收到推送通知。【参考方案2】:

如果在应用程序未运行时收到应用程序通知,则设备会提醒用户该应用程序有数据等待它。

【讨论】:

【参考方案3】:

不,如果收到消息,它不会启动你的应用程序,它由 iOS 处理。

如果用户选择查看通知,您的应用就会启动。因此,如果用户没有对通知做出反应,您的应用程序将不会启动。 如果 iOS 在用户为您的应用选择推送通知时启动您的应用,您将必须检查 lauchOptions 字典以查看是否有任何推送通知:

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

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    _rootViewController = [[RootViewController alloc] init];

    self.window.rootViewController = self.rootViewController;   

        NSDictionary *remoteNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    if (remoteNotif) 
        //Handle notification
     

如果您的应用已经在运行并且在前台,那么应用委托将直接收到通知。在您的应用委托上调用方法 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

【讨论】:

以上是关于远程推送通知的主要内容,如果未能解决你的问题,请参考以下文章

处理远程推送通知格式

iOS(本地通知与远程通知)

远程推送通知

如何在应用程序未运行并点击推送通知时调试远程推送通知?

远程推送通知注册失败

远程推送通知