【问题标题】:Can i get info about notification (apn)我可以获得有关通知的信息(apn)
【发布时间】:2012-01-27 21:54:36
【问题描述】:
当应用程序从后台模式变为前台模式时,我可以获取我的应用程序的推送通知列表(APNS 通知)吗?
在前台模式下我可以在回调中接收有关推送通知的信息
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
其他情况:
当应用处于后台模式时,我的应用会收到推送通知。
在此之后,我点击应用图标,我想获取有关收到通知的信息。我怎样才能得到这些信息?
如果我在后台模式下直接点击通知(而不是应用图标),则回调didReceiveRemoteNotification 被调用。
【问题讨论】:
标签:
iphone
ios
xcode
push-notification
【解决方案1】:
当应用程序从后台模式变为前台模式时,我可以获取我的应用程序的推送通知列表(APNS 通知)吗?
没有。没有清单。您一次只能收到一个通知。当用户 iPhone 离线并且您发送 5 条通知时,用户只会收到您发送的最后一条。
如果用户使用通知上的打开操作启动您的应用,您将在开始使用时获得它:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
其他情况
当应用处于后台模式时,我的应用会收到推送通知。在此之后,我单击应用程序图标,我想获取有关收到通知的信息。我怎样才能得到这些信息?
你不能。当用户关闭通知并稍后打开您的应用程序时,它已经消失并且无法访问它。
当您发送推送通知时,您可能有一个可通过 Internet 访问的服务器,您可以在其中注册用户的设备。
处理此问题的常用方法是将通知存储在此服务器上并在应用启动时对其进行查询...因此,仅使用通知来通知用户启动您的应用,然后在启动应用时检查您的服务器无论你想要什么。
【解决方案2】:
一旦您的应用程序到达前台并主动运行,通知警报(如声音、警报)将不会显示或不会通知您。
但是你会在 UIApplication Delegate 中得到一个回调,你可以使用它。
api是,
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;
而且,如果您的应用程序在后台运行,则通知会出现,并且只有当您单击“查看”按钮时,您才会在 UIApplication 委托中获得回调。
如果您点击关闭按钮,您将不会在应用程序中收到回调。