ios - 打开应用程序时检索 APNS 的通知

标签 ios objective-c notifications apple-push-notifications uiapplicationdelegate

我不确定有没有人遇到过这种情况,但是是这样的:

我已经完成了 APNS,应用确实收到了通知。当我从通知(调用 appDidReceiveRemoteNotification:)打开应用程序时,它工作正常。

奇怪的是,当应用程序在后台运行时,它会收到一条通知(显示在通知框中)。当我通过点击图标(不是通知)打开应用程序时,调试器没有在 appDidReceiveRemoteNotification:appDidFinishLaunchWithOption: 处停止,所以我的通知没有保存.当我再次下拉通知框并点击通知时,调试器按预期停止在 appDidReceiveRemoteNotification: 处。如何通过在应用程序图标上打开应用程序来更新通知?

** 编辑 **

感谢 abhinav,我意识到我误用了这个方法。我应该使用其中之一

- (void)applicationWillEnterForeground:(UIApplication *)iApplication // Or 
- (void)applicationDidBecomeActive:(UIApplication *)iApplication.

但是,我的应用程序设计为显示服务器可以向用户发送消息(关于更新、新闻...)。代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//....
    if (launchOptions) {
        NSDictionary *dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if (dictionary) {
            [Message saveMessage:dictionary];

            NSLog(@"Launched from push notification: %@", dictionary);
        }
    }
//....
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    // Save message to coredata.
    [Message saveMessage:userInfo];

    // Perform seggue, showing inbox viewcontrollers here.
}

但是后台打开应用时使用的方法都没有提供通知字典,而且我的老板要求我在后台打开应用时更新核心数据,我怎么办?还是我应该告诉我的老板不能被收购?我们不希望用户错过有关更新的通知。

最佳答案

你到底想做什么?如果您想更新应用程序的角标(Badge)计数,那么您只需在 applicationDidBecomeActive 中将应用程序角标(Badge)计数设置为 0:

要清除通知面板中的通知,请使用以下代码:-

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];

关于ios - 打开应用程序时检索 APNS 的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33342993/

相关文章:

php - 如何在新订单 Opencart 2.0.1.1 的仪表板中显示声音通知

ios - 技术世界跟踪性能受到资源限制的影响

ios - 如何排序 NSArray 字母顺序?

ios - UICollectionViewCell 是否有 viewWillAppear 或我可以将数据传递给的东西

ios - 在标签上显示字符串和变量

Laravel 5.3 通知消息自定义

android - 如何像提醒一样显示通知?

ios - UITableViewCells 点击时不会改变颜色

iphone - 如何在 iPhone 应用程序中从 NSString 获取整数值?

ios - 过渡导航栏标题