关于UILocalNotification不弹出显示“是否通知”的问题

本文介绍如何在iOS应用中实现本地通知的发送与取消,包括设置通知权限、创建通知对象、配置通知属性以及取消已安排的通知。通过实例演示了如何在应用启动时请求通知权限,并在用户界面切换开关时发送或取消本地通知。

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

关键是画线的两句代码:(在app启动时写这个代码也行,ios8需要注册本地通知)

- (void)viewDidLoad {

    [super viewDidLoad];

    app=[UIApplication sharedApplication];

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

    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


- (IBAction)changed:(id)sender {

    UISwitch *sw=(UISwitch *)sender;

    if (sw.on) {


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

    notification.fireDate=[NSDate dateWithTimeIntervalSinceNow:10];

    notification.timeZone=[NSTimeZone defaultTimeZone];

    notification.repeatInterval=kCFCalendarUnitMinute;

    notification.soundName=@"gu.mp3";

    notification.alertAction=@"打开";

    notification.hasAction=YES;

    notification.alertLaunchImage=@"logo.png";

    notification.alertBody=@"你好,你收到一条新的消息";

    notification.applicationIconBadgeNumber=1;

    NSDictionary *info=@{@"java.org":@"key"};

    notification.userInfo=info;

    [app scheduleLocalNotification:notification];

        

    }

    else

    {

        NSArray *localArray=[app scheduledLocalNotifications];

        if (localArray) {

            for (UILocalNotification *noti in localArray) {

                NSDictionary *dict=noti.userInfo;

                if (dict) {

                    NSString *key=[dict objectForKey:@"key"];

                    if ([key isEqualToString:@"java.org"]) {

                        [app cancelLocalNotification:noti];

                    }

                }

            }

        }

    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值