【问题标题】:iOS : Handle all the uilocalnotification on click of one notification or app iconiOS:在单击一个通知或应用程序图标时处理所有 uilocalnotification
【发布时间】:2016-03-04 12:12:59
【问题描述】:

我如何在单击一个通知时处理(打开警报)所有UILocalNotification,因为苹果会在单击一个通知时从通知中心清除其他通知...如果用户打开应用程序忽略通知中的通知中心,我该如何处理(打开UIAlertView for)它们?我已经在Calminder app 看到这个工作完美了

【问题讨论】:

    标签: ios objective-c iphone notifications uilocalnotification


    【解决方案1】:

    您可以使用[[UIApplication sharedApplication] scheduledLocalNotifications]; 获取之前安排的所有通知。此方法返回一个 NSArray 实例,因此您可以运行 for 循环来处理这些:

    for (UILocalNotification *notification in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
        // Handling codes goes here.
    }
    

    如果您想在通知中包含一些额外信息,您可以使用userInfo 属性。它是一个字典,用于存储通知中的附加信息。你可以这样设置:

    notification.userInfo = // The dictionary goes here.
    

    所以现在你可以这样做了:

    for (UILocalNotification *notification in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
        NSDictionary *userInfo = notification.userInfo;
        // Handling codes goes here. Now you can use the user info dictionary to
        // get what you stored into the userInfo dictionary when you are
        // initializing the user info.
    }
    

    在此之后,您可以获得所有信息,并可以在UIAlertView 中展示。

    要在应用启动时调用上面的这些代码,您可以使用两种方法:

    -application:didFinishLaunchingWithOptions:
    

    -applicationDidBecomeActive:
    

    希望这会有所帮助。

    【讨论】:

    • 但如果未设置重复间隔,则该特定通知会在触发后从预定数组中删除...那么我如何获得已触发且未设置重复间隔的通知...
    • @HardikAmal 看看这个问题:stackoverflow.com/questions/22728179/…
    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多