【问题标题】:How to get particular notification count number如何获取特定的通知计数
【发布时间】:2016-12-20 08:13:55
【问题描述】:

我有三个类别的UILocalNotification - 每周日、周一和周六通知。

如何获取特定通知,即星期一触发的计数。 我有一个通知UILocalNotification(不是远程通知或推送通知)。

如何获取两个月内触发的星期一通知的计数?

注意:没有推送或远程通知的范围。

【问题讨论】:

    标签: ios objective-c notifications uilocalnotification


    【解决方案1】:

    您必须手动管理它,我建议这样做的方式是利用 AppDelegate 的 didReceiveLocalNotification 方法。实现这一点,然后检查UILocalNotificationObjectfireDate 属性。您可以使用以下代码将其解析为一周中的某一天:

    int dayOfWeek = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:notification.fireDate];
    

    然后您可以根据您拥有的数字将该值存储在NSUserDefaults 中。 1 是星期一,2 是星期二,以此类推...

    long dayOfWeek = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:notification.fireDate];
    long currentCount = [[NSUserDefaults standardUserDefaults] integerForKey:[NSString stringWithFormat:@"weekdayNotificationCount_%ld", dayOfWeek]];
    [[NSUserDefaults standardUserDefaults] setInteger:currentCount + 1 forKey:[NSString stringWithFormat:@"weekdayNotificationCount_%ld", dayOfWeek]];
    

    这样一来,您的NSUserDefaults 中将始终存储一个运行总计,并且只有在删除该应用后才会消失。

    【讨论】:

    • didReceiveLocalNotification 在我点击收到的通知消息时触发。如果我没有打开通知,那么 didReceiveLocalNotification 将不起作用并且计数将不匹配。
    • 嗯,在这种情况下,我认为您可能会被卡住。你当然可以通过远程通知来做到这一点,但你已经说过你没有这个范围。
    • 你说得对,我没有推送通知的范围,有没有什么方法可以在我收到通知账单响起时触发?
    • 不幸的是,在本地通知的情况下,要获得您正在寻找的功能,您必须实现远程通知。这并不意味着您必须编写后端,但 Firebase 等服务免费为您完成。
    • 非常感谢您免费提供!哪些是我们现阶段不需要的应用程序需要强制实现的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多