当我们想要告知用户新数据可用于他的应用程序时,我的应用程序使用远程通知。在代码中,我在appDelegate的didReceiveRemoteNotification方法中编写了updateData方法(从服务器提取数据)。 现在它可以正常工作,如果我的应用程序是活动的,但不适用于非活动模式。我在某个地方错了吗?什么是解决方案?提前谢谢。
答案 0 :(得分:2)
即使您的应用未处于活动状态,我也知道无法处理推送通知(而且我认为这应该是应该的)
您应该在AppDelegate的didFinishLaunch中检查PNS
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
//...
//If Push Notification
NSDictionary *pnsDict = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if(pnsDict != nil){
DDLogInfo(@"PNS");
[self handlePushNotification:pnsDict];
}
//..
}
通过这种方式,您可以确保捕获所有远程通知。
请注意,您的应用应not depend on pns
。 PNS可能无法交付或用户可以将其关闭。应用程序应始终使用pns并以相同方式禁用pns。
有关详细信息,请阅读Apple PNS Guide
答案 1 :(得分:1)
这就是通知应该如何工作:如果应用程序是前台应用程序,它会直接收到通知;否则,用户会看到一条消息,询问他们是否要激活该应用。它清楚地描述了in the docs。如果要使用APNS,则无法避免该对话框。