当我们想通知用户他的应用程序有新数据可用时,我的应用程序使用远程通知,在代码中,我在 appDelegate 的 didReceiveRemoteNotification 方法中编写了 updateData 方法(从服务器提取数据)。现在,如果我的应用程序处于活动状态,它可以正常工作,但不适用于非活动模式。我在某个地方错了吗?什么是解决方案?提前致谢。
问问题
852 次
2 回答
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 指南
于 2013-03-14T07:46:48.057 回答
1
通知应该是这样工作的:如果应用程序是前台应用程序,它会直接接收通知;否则用户会看到一条消息弹出,询问他们是否要激活应用程序。它在 docs中有清楚的描述。如果您想使用 APNS,则无法避免该对话框。
于 2013-03-14T07:48:46.113 回答