iPhone - UILocalNotification 作为警报

Posted

技术标签:

【中文标题】iPhone - UILocalNotification 作为警报【英文标题】:iPhone - UILocalNotification as alarm 【发布时间】:2011-07-14 16:05:18 【问题描述】:

即使我的 iPhone 应用程序在后台,我如何使用 UILocalNotification 在每天晚上 8 点显示我的闹钟?

【问题讨论】:

【参考方案1】:

fireDate 设置为晚上8 点,将repeatInterval 设置为NSDayCalendarUnit,并使用[[UIApplication sharedApplication] scheduleLocalNotification: myNotification]; 安排警报

【讨论】:

即使手机设置为静音模式,是否可以强制 UILocalNotification 发出声音? 即使应用程序不在后台运行也能正常工作吗? @AnthonyChan UILocalNotification 仅在手机未处于静音模式时才会发出声音。【参考方案2】:

dasdom 答案是正确的。只是想补充一点,如果您的设备处于静音模式,警报将不会发出声音。这是 Apple 对 UILocalNotification 的限制。

【讨论】:

应该如此!当我希望手机静音时,我不希望任何应用多管闲事!【参考方案3】:
UILocalNotification *localNotification =[[UILocalNotification alloc]init];

 NSCalendar *calendar=[NSCalendar currentCalendar];
    [calendar setTimeZone:[NSTimeZone defaultTimeZone]];

    unsigned currentFlag=NSDayCalendarUnit|NSMonthCalendarUnit|NSYearCalendarUnit|NSWeekdayCalendarUnit;

    NSDateComponents *comp=[calendar components:currentFlag fromDate:[NSDate date]];

    comp.hour=8;
    comp.minute=0;
    comp.second=0;

    NSDate *date=[[calendar dateFromComponents:comp]dateByAddingTimeInterval:0];

    if (localNotification==nil) 
        return;
    

    localNotification.fireDate=date;
    localNotification.timeZone=[NSTimeZone defaultTimeZone];
    localNotification.repeatCalendar=[NSCalendar currentCalendar];

    localNotification.alertBody=@"Good Morning dude..!";

    localNotification.alertAction=@"Snooze";

    localNotification.repeatInterval=NSDayCalendarUnit;

    localNotification.soundName=@"goodmorning.caf";

[[UIApplication sharedApplication]scheduleLocalNotification:localNotification];

我希望这会对你有所帮助...!

【讨论】:

以上是关于iPhone - UILocalNotification 作为警报的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 各大机型设备号

苹果手机型号对应表

在 iphone 5 和 iphone 6 中动态设置字体大小

Surface Pro4链接不上iphone手机的热点

iphone13和12外观的区别 iphone13和iphone12对比哪个好

为 iPhone 和 iPhone 4 开发之间有啥变化?