美文网首页
iOS开发中经常用到本地通知,有时也叫做本地推送,两者都是同一个

iOS开发中经常用到本地通知,有时也叫做本地推送,两者都是同一个

作者: 酷乐青春 | 来源:发表于2022-12-27 15:24 被阅读0次

  iOS开发中经常用到本地通知,有时也叫做本地推送,两者都是同一个类UILocalNotification,这个类可以用于开发者灵活控制一些需要推送到通知栏的信息,比如提示信息,日程提醒或者是一些其他应用信息,它和远程通知(也叫远程推送,RemoteNotification)本质没有多大区别,唯一区别在于发起的地方不同,本地通知在APP内发起,而远程通知由远端服务器发起通过APNS推送到设备,两者展示的方式都一样,都会出现在通知栏,都可以携带信息。下面用通过三个步骤来讲下本地通知的使用方法。

一、发起通知,也就是本地通知的初始化,需要注意的是iOS8及以后发起通知需要先进行一个注册。

- (void)initializeLocalNotification {

    // 初始化本地通知

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

    // 设置启动时间

    notification.fireDate = [[NSDate date] dateByAddingTimeInterval:15.0f];

    // 设置时区

    notification.timeZone = [NSTimeZone defaultTimeZone];

    // 设置用户信息

    notification.userInfo = @{

                              @"test":@"test",

                              };

    // 通知栏提示信息

    notification.alertBody = @"this is a local notification";

    // 通知音效

    notification.soundName = UILocalNotificationDefaultSoundName;

    // badgeNumber

    notification.applicationIconBadgeNumber = 1;

    // iOS8及以后需要添加这个注册,才能得到授权

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) {

        UIUserNotificationType type =  UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound;

        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:type

                                                                                categories:nil];

        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

    }

    // 调用通知

    [[UIApplication sharedApplication] scheduleLocalNotification:notification];

}

模拟器也可以接受本地通知,效果如下:

二、接收通知,发起了通知,如果我们需要处理接收到的信息,那么需要在AppDelegate里面作以下处理。

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

    // 如果程序被kill掉,点击通知栏通知进入程序,那么本地通知(远程通知也是一样)将从这里接收

    // 判断是否有本地通知信息,判断远程通知的Key为 UIApplicationLaunchOptionsRemoteNotificationKey

    if (launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]) {

        [self dealLocalNotificationWithUserInfo:launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]];

    }

    return YES;

}

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

    // 如果程序只是挂起,或者是程序正在运行,那么本地通知(远程通知也类似,不过是在另外一个代理方法里接收)将从这里接受

    [self dealLocalNotificationWithUserInfo:notification.userInfo];

}

/**

*  处理本地通知

*

*  @param userInfo 通知内容

*/

- (void)dealLocalNotificationWithUserInfo:(NSDictionary *)userInfo {

    NSLog(@"receive localNotification - %@", userInfo);

}

三、取消通知,有时候我们需要取消已经schedule的本地通知,那么就需要使用到:

- (void)cancelLocalNotification {

    // 取消所有本地通知

    [[UIApplication sharedApplication] cancelAllLocalNotifications];

    // 取消特定本地通知

    // 通过遍历的方式找到你想要取消的通知

    for (UILocalNotification *notification in [UIApplication sharedApplication].scheduledLocalNotifications) {

        // 判断你需要取消的通知,本地的通知的很多属性都可以用来判断,启动日期、userInfo、alertBody都可以

        if ([notification.userInfo[@"test"] isEqualToString:@"test"]) {

            [[UIApplication sharedApplication] cancelLocalNotification:notification];

        }

    }

}

Demo地址:https://github.com/LeoTangCN/LocalNotificationDemo

转自:https://www.cnblogs.com/leotangcn/p/4973962.html

相关文章

  • 推送、套接字 Socket

    1.推送 iOS 中的通知包括本地推送通知和远程推送通知,两者在 iOS 系统中都可以通过弹出横幅的形式来提醒用户...

  • iOS 推送通知及通知扩展

    概述 iOS中的通知包括本地推送通知和远程推送通知,两者在iOS系统中都可以通过弹出横幅的形式来提醒用户,点击横幅...

  • iOS 本地推送通知

    本地推送通知 对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的本地通知将被iOS忽略。 a...

  • ios10前后推送基本使用

    一、推送的分类 本地推送通知“本地”可以理解为”不联网”;即使没有网络情况下,也可以推送通知消息通知发送方: 开发...

  • 技术贴:5.iOS中的推送(本地推送、极光推送)

    iOS中分为本地推送和远程推送两种; 本地推送: 1.创建一个本地通知(UILocalNotification)(...

  • 推送通知

    推送通知的分类 本地推送通知本地推送通知可以理解为不联网,即使没有网络也可以推送通知通知发送方:开发人员负责在AP...

  • iOS远程推送之(一):APNs原理和基本配置

    一、前言 iOS中消息推送有两种方式,本地推送和远程推送。本地推送在iOS中使用本地通知为你的APP添加提示用户功...

  • iOS-消息推送

    iOS 消息推送包括远程推送通知(Remote Notification)和本地推送通知(Local Notifi...

  • iOS本地通知和远程推送

    iOS 本地通知和远程推送 推送通知的应用,可以推送最新的消息给用户,获得更多的关注。推送分为本地推送和远程推送两...

  • iOS 通知机制总结

    iOS中提供了2种推送通知 本地推送通知(Local Notification) 远程推送通知(Remote No...

网友评论

      本文标题:iOS开发中经常用到本地通知,有时也叫做本地推送,两者都是同一个

      本文链接:https://www.haomeiwen.com/subject/nunoqdtx.html