仅制作本地通知显示徽章

时间:2012-06-15 13:52:27

标签: iphone objective-c xcode

我一直在寻找UILocalNotification的API。我想在点击火药时设置徽章编号。没有弹出窗口。我尝试将我的通知设置为只有一个徽章编号为1且没有警报正文。但这没用。

//Add new local push notification
locationNotification.fireDate = date;
locationNotification.timeZone = [NSTimeZone defaultTimeZone];
//locationNotification.alertBody = [NSString stringWithFormat:body];
//locationNotification.alertAction = @"Ok";
//locationNotification.soundName = UILocalNotificationDefaultSoundName;
locationNotification.applicationIconBadgeNumber = 1;

这可能吗?我只想在打开应用程序后显示该消息。

2 个答案:

答案 0 :(得分:1)

我为我所从事的项目完成了类似的工作。我只需要显示一个没有警报的徽章编号。您可能需要在通知中添加“声音”,我所做的是添加0.5秒静音文件。我的代码看起来像这样。

        UILocalNotification *notif = [[UILocalNotification alloc] init];
        notif.fireDate = [NSDate  date];
        notif.timeZone = [NSTimeZone defaultTimeZone];
        notif.soundName = @"silence.caf";
        notif.applicationIconBadgeNumber = 2;
        [[UIApplication sharedApplication] scheduleLocalNotification:notif];
        [notif release];

希望这有帮助!

答案 1 :(得分:0)

这是一个老问题,但希望这会对某人有所帮助。我根本没有想到可以安排静默的本地通知,但似乎确实如此。

这有效:

    UILocalNotification* notification = [[UILocalNotification alloc] init];
    notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
    notification.timeZone = [NSTimeZone systemTimeZone];
    notification.alertBody = nil;        
    notification.applicationIconBadgeNumber = 99;
    [[UIApplication sharedApplication] scheduleLocalNotification:notification];

我还尝试向userInfo属性添加一些信息,以便我可以在预定通知中识别此通知,但这似乎可以防止通知被触发。

而不是那样,我现在使用静音音频文件作为soundName属性,以便我可以测试它。然而,无声音频文件似乎不需要实际触发通知。

如果您想要做的事情比将徽章更新为您在安排时所知道的值更有用,那么您需要使用静默推送通知并设置" content-available"标志。