Push Notification 的后台处理

Posted

技术标签:

【中文标题】Push Notification 的后台处理【英文标题】:Background handling of Push Notification 【发布时间】:2015-04-27 07:02:28 【问题描述】:

当 iPhone 应用程序完全关闭,即甚至不在后台时,如何进行 APNS 处理。 例如当应用程序完全关闭时,将 APNS 数据存储在 sqlite 中。

【问题讨论】:

***.com/questions/19068762/… 试试这个... 【参考方案1】:

在 AppDelegate 中:

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


    if (launchOptions)
     //launchOptions is not nil

        NSDictionary *userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];
        userInfoDic = userInfo;

        if (apsInfo)
         //apsInfo is not nil
            [self performSelector:@selector(postNotificationToPresentPushMessagesVC)
                       withObject:nil
                       afterDelay:1];
        
    

    return YES;


-(void)postNotificationToPresentPushMessagesVC
    
    [[NSNotificationCenter defaultCenter]postNotificationName:@"recievePush" object:userInfoDic];

在所有 VC 中:

- (void) viewWillAppear:(BOOL)animated

    [super viewWillAppear:animated];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(recievePush:) name:@"recievePush"  object:nil];



- (void) recievePush : (NSNotification *) notif

    NSDictionary *dict = notif.object;

// do something with message data

【讨论】:

以上是关于Push Notification 的后台处理的主要内容,如果未能解决你的问题,请参考以下文章

Ionic Cordova:Push Notification 插件 onMessage 接收消息。

用 PHP 处理 Apple Push Notification Service 的设备令牌的方法

关于安卓未接来电通知

使用 laravel-push-notification 向 Android 发送推送通知

iOS6和iOS7处理push不同之处,解决反复push,-(void) application: didReceiveRemoteNotification: fetchCompletionHandl

laravel-push-notification 在响应正文中返回 html 标记