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