【问题标题】:Can I dismiss the local notification when next time the app launch?下次应用启动时我可以关闭本地通知吗?
【发布时间】:2013-01-31 04:11:58
【问题描述】:

我知道当用户在通知中心点击此通知时我可以取消通知。但是我可以在无法从系统获取相关本地通知的其他地方取消通知吗?我可以序列化本地通知,并在应用下次运行时取消它吗?

抱歉让您误会了!

我想取消在通知中心发布的通知,但不是已安排的通知。 所以我想问的是如何保存本地通知对象,然后我可以在下次应用启动时使用它自行关闭。也许现在的sdk无法完成这项工作。

【问题讨论】:

    标签: ios serialization uilocalnotification notificationcenter


    【解决方案1】:

    如果您需要取消所有通知,您可以使用:

    [[UIApplication sharedApplication] cancelAllLocalNotifications];
    

    取消特定通知:

    [[UIApplication sharedApplication] cancelLocalNotification:aNotification];
    

    为了获取您可以使用的特定通知:

    NSArray *notifArray = [[UIApplication sharedApplication] scheduledLocalNotifications];
    for (int i = 0; i < [notifArray count]; i++)
    {
        UILocalNotification *aEvent = [notifArray objectAtIndex:i];
        NSDictionary *userInfo = aEvent.userInfo;
        NSString *notifId=[NSString stringWithFormat:@"%@",[userInfo valueForKey:@"id"]];
        if ([id isEqualToString:cancelId])
        {
            [[UIApplication sharedApplication] cancelLocalNotification:aEvent];
            break;
        }
    }
    

    这里:

    • 您需要在通知的userInfo 中存储一个 id 键值对,以识别特定的本地通知
    • cancelId 是您要取消的通知的ID(存储在用户信息中)

    【讨论】:

    • 我想这不是我想要的。我想在通知中心关闭已发布的通知,但不是已安排的通知
    • 这没有回答问题。该问题涉及取消已发送的通知,而不是预定的通知。
    • @steveluscher:你是对的,但他在我回答后编辑了他的问题,请检查编辑日期。他最初的问题中没有粗体部分。
    【解决方案2】:

    如果您保存通知的链接,那么您可以在它触发之前取消它。

    [[UIApplication sharedApplication]cancelLocalNotification:yourNotification];
    

    【讨论】:

    • 确实可以,但是如果您的应用在您有机会使用它之前就退出了,那么对UILocalNotification 的引用也会随之而来。
    • 您可以将 UILocalNotification 的引用保存到用户默认值或其他地方
    【解决方案3】:

    使用此代码获取所有预定通知:

    NSArray *reminderArray=[[UIApplication sharedApplication]scheduledLocalNotifications];
    

    然后您可以选择所需的通知并将其删除。

    [[UIApplication sharedApplication]cancelLocalNotification:yourNotification];
    

    【讨论】:

    • 这没有回答问题。该问题涉及取消已发送的通知,而不是预定的通知。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多