iOS 注册本地通知(推送)

本文介绍了如何在iOS应用中设置和注册本地通知,包括设置通知时间、提醒内容、重复间隔、锁屏提示以及处理接收到的通知。通过使用`UILocalNotification`,可以在应用进入后台后10秒触发通知,并在用户点击通知时执行相应操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        注:按Home键让App进入后台运行时,方可查看通知。


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    

    // 注册本地通知

    UILocalNotification *localnotifit = [[UILocalNotification alloc] init];

    if (localnotifit) {

        

        // 获取通知时间

        NSDate *now = [NSDate date];

        localnotifit.timeZone = [NSTimeZone defaultTimeZone];

        

        // 10秒后开始通知

        localnotifit.fireDate  = [now dateByAddingTimeInterval:10.0];

        

        // 重复间隔 (下限为每分钟通知一次)

        localnotifit.repeatInterval = kCFCalendarUnitMinute;

        

        // 提醒内容

        localnotifit.alertBody = @"十秒后手机将会爆炸,赶快扔掉";

        

        // 锁屏状态下,滑动来(这三个字是系统自动出现的)后面紧接着文字就是alertAction

        localnotifit.alertAction = @"解锁(进入App";

        

        // 通知栏里的通知标题

        localnotifit.alertTitle = @"提示";

        

        // 默认的通知声音(只有在真机上才会听到)

        localnotifit.soundName = UILocalNotificationDefaultSoundName;

        

        // 红色圈圈数字

        localnotifit.applicationIconBadgeNumber = 1;

        

        // 通知标识

        NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObject:@"LocalNotificationID" forKey:@"key"];

        localnotifit.userInfo = dic;

        

        // 将通知添加到系统中

        [[UIApplication sharedApplication] scheduleLocalNotification:localnotifit];

        

    }

    

    // 注册通知(iOS 8之后的注册通知方法,iOS 8以前暂不做介绍)

    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];

    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

    

    return YES;

}


// 接收到通知后触发的方法,只有在App进入前台的时候才会执行。

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

{

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"恭喜你上当了" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"我很开心", nil];

    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;

    [alert show];

    

    // 取消通知

//    [[UIApplication sharedApplication] cancelAllLocalNotifications];

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值