iOS本地推送通知的基本使用
iOS10以前本地通知(UILocalNotification)
使用步骤:
- 创建一个UILocalNotification对象
- 设置触发时间及标题、内容
- 注册并安排通知
// 1. 创建一个UILocalNotification对象 let localNotification = UILocalNotification() // 2. 设置触发时间及标题、内容 localNotification.fireDate = Date(timeIntervalSinceNow: 3) localNotification.alertTitle = "Title" localNotification.alertBody = "alertBodyalertBodyalertBodyalertBody" // 0. 注册通知(一般在程序刚启动时注册通知) UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .alert, .sound], categories: nil)) // 3. 安排通知 UIApplication.shared.scheduleLocalNotification(localNotification)
-
UILocalNotification的其他属性
-
applicationIconBadgeNumber
:应用程序图标上的数字标记 -
repeatInterval
:重复间隔(按照年、月、日、时、分重复) -
soundName
:发出通知时的提示音,使用UILocalNotificationDefaultSoundName或者指定的音频文件名 -
userInfo
:与通知相关的额外的字典,用户在通知上看不到此数据
-
应用程序处理收到的通知
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // ...... // 点击通知启动程序(程序不在前台也不在后台,即程序退出时),在此可获取被点击的通知并处理 if let localNotification = launchOptions?[.localNotification] { print(localNotification) } return true } // 应用程序收到通知时,在此方法中处理收到的通知 func application(_ application: UIApplication, didReceive notification: UILocalNotification) { print(notification) }
iOS10+使用通知请求(UNNotificationRequest)创建本地通知
使用步骤
- 请求授权
- 创建通知内容
- 创建通知触发时间
- 使用唯一标识字符串、内容、触发器创建通知请求
- 将通知请求加到通知中心
// 1. 创建通知内容 let content = UNMutableNotificationContent() // 标题 content.title = NSString.localizedUserNotificationString(forKey: "Hello!", arguments: nil) // 内容 content.body = NSString.localizedUserNotificationString(forKey: "Hello_message_body", arguments: nil) // 通知提示音 content.sound = .default // 2. 创建通知触发器 // Deliver the notification in five seconds. let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false) // 3. 使用唯一标识字符串、内容、触发器创建通知请求 let uuidString = UUID().uuidString let request = UNNotificationRequest(identifier: uuidString, content: content, trigger: trigger) // 获取当前程序的通知中心 let notificationCenter = UNUserNotificationCenter.current() // 设置代理,用来处理收到的通知 notificationCenter.delegate = self // 0. 请求授权(一般在程序刚启动时请求通知授权) notificationCenter.requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in } // 4. 将通知请求加到通知中心 notificationCenter.add(request) { (error) in if error != nil { // Handle any errors. } }
-
UNMutableNotificationContent
的其他常用属性-
subtitle
:子标题 -
badge
:应用程序图标上的数字标记 -
userInfo
:与通知相关的额外的字典,用户在通知上看不到此数据
-
-
UNNotificationTrigger
常见的通知触发器-
UNTimeIntervalNotificationTrigger
: 几秒后触发,如果要设置可重复触发需要大于60 -
UNCalendarNotificationTrigger
:某年某月某日某天某时某分某秒触发 -
UNLocationNotificationTrigger
:在某个位置触发
-
- 处理接收到的通知(使用UNUserNotificationCenterDelegate中的两个方法)
// Asks the delegate to process the user's response to a delivered notification. func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { // 处理代码 ...... completionHandler() } // 应用程序运行在前台时,此方法处理收到的通知 func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { // 处理代码 ...... completionHandler(.sound) }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android 自定义ToolBar并沉浸式
ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,由于其高度的可定制性、灵活性、具有Material Design风格等优点,越来越多的App也用上了ToolBar。 沉浸式状态栏是从android Kitkat(Android 4.4)开始出现的,它可以被设置成与APP顶部相同的颜色,这就使得切换APP时,整个界面就好似切换到了与APP相同的风格样式一样。 依赖包: Toolbar, implementation 'androidx.appcompat:appcompat:1.1.0' 沉浸式, implementation 'com.gyf.immersionbar:immersionbar:3.0.0' 1、自定义Toolbar步骤:s 1)、定义 /values/styles.xml <?xml version="1.0" encoding="utf-8"?> <resources> <style name="TextAppearance_TitleBar_Title" parent="Te...
- 下一篇
我对独立思考的理解
随着互联网的普及,社会评论者的门槛越来越低,各路声音充斥各大平台;同时,思考这件事情似乎该质疑了,值得反思。 大脑本质上并不喜欢思考,更多的是记忆在驱动行为。 独立思考应如何定义,我思前想后不知如何解释,不过老子《道德经》中的一句话很有独立思考的意思:“有物混成,先天地生,寂兮寥兮,独立而不改,周行而不殆,可以为天地母。” 关于独立思考,我分为五个部分来讨论何为独立思考——群体与思考、价值观与思考、信息与思考、辩证与思考、读书与思考。 我只是写出我的想法,希望对阅读的您有启发作用。 群体与思考 说到群体与思考的关系,绕不开《乌合之众》一书。 在《乌合之众》这本中,作者古斯塔夫·勒庞提出一种观点: 在群体之中,人的个性会被湮没,独立思考和推理的能力会丧失,智力也随之下降,并表现出冲动、情绪夸张、易怒、易受暗示、轻信等主要特征。 我认为讨论“群体与思考”这个话题本身似乎就是错误的,因为群体只有寥寥无几的“领导者”在思考与鼓动。甚至连“领导者”也没有思考,只是在鼓动,而这种鼓动的行为翻译过来就是“拉人站队”。 人在思维层面分为两类,“有意识”与“无意识”。其中“有意识”的一面更多受认知支配,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境