[SwiftUI 100 天] 安排本地通知
2020/6/17 23:25:52
本文主要是介绍[SwiftUI 100 天] 安排本地通知,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
译自 www.hackingwithswift.com/books/ios-s…
更多内容,欢迎关注公众号 「Swift花园」
喜欢文章?不如来个 🔺💛➕三连?关注专栏,关注我 🚀🚀🚀
安排本地通知
iOS 有一个叫 UserNotifications 的框架,它的功能跟你想的一样:让我们创建可以显示在锁定的屏幕上的通知。 通知有两种,基于创建的位置而不同:本地通知是我们本地安排的,远程通知(通常又称为推送通知)是从某个地方的服务器发送的。
远程通知需要用到一个服务器,因为你需要把消息发给 Apple 的推送通知服务(APNS),由它转发给用户。但本地通知相对来说要简单的多,因为只要用户允许,我们可以任何时候发送消息。
为了尝试本地通知,我们需要导入 UserNotifications
:
import UserNotifications 复制代码
接下来我们要添加一些基本结构,然后填充本地通知的代码。使用本地通知需要向用户询问权限,然后才能注册我们想展示的通知。我们将这些动作放进独立的按钮,代码如下:
VStack { Button("Request Permission") { // first } Button("Schedule Notification") { // second } } 复制代码
好了,基本结构就完成了。接下来我们聚焦第一步:请求授权。通知的形式很多样,最常见的动作时请求展示 alert,badge 和 声音的权限 —— 这并不意味着我们要同时使用所有这些形式,但是通过事先请求权限,我们可以稍后选择。
当我们告诉 iOS 我们想要的通知类型之后,它会提示用户我们的应用要使用通知做些什么。当用户做出选择,我们会得到一个闭包调用,并被告知请求成功与否。
把第一个 // first
注释替换成下面的代码:
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { success, error in if success { print("All set!") } else if let error = error { print(error.localizedDescription) } } 复制代码
一旦用户授予权限,我们就可以开始安排通知了。尽管通知看起来很简单,Apple 还是把它们分成了三部分,以便获得最大的灵活性:
- 要显示的内容,包括标题,子标题,声音,图像,等。
- 决定通知何时显示的触发器,它可以是从现在开始的某个时间延迟,或者未来某个具体的日期时间,或者某个位置。
- 请求组合了内容和触发器,并且还添加了一个唯一的标识符,以便你之后可以编辑或者移除特定的 alert。如果你不需要做编辑或者删除的事情,可以用
UUID().uuidString
来获取一个随机的标识符。
当你在学习通知的时候,最简单的触发器类型是 UNTimeIntervalNotificationTrigger
,它可以让我们请求从现在开始若干秒数之后显示的通知。把 // second
注释替换为下面的代码:
let content = UNMutableNotificationContent() content.title = "Feed the cat" content.subtitle = "It looks hungry" content.sound = UNNotificationSound.default // show this notification five seconds from now let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false) // choose a random identifier let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger) // add our notification request UNUserNotificationCenter.current().add(request) 复制代码
运行应用,点击第一个按钮请求通知权限,然后点击第二个按钮添加一个实际的通知。
接下来是重要的部分:一旦通知被添加: 在模拟器里点击 Cmd+L 锁屏。几秒后,设备会随着一个声音唤醒,并显示我们的消息 —— 漂亮!
我的公众号 这里有Swift及计算机编程的相关文章,以及优秀国外文章翻译,欢迎关注~
这篇关于[SwiftUI 100 天] 安排本地通知的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-10-05Swift语法学习--基于协议进行网络请求
- 2022-08-17Apple开发_Swift语言地标注释
- 2022-07-24Swift 初见
- 2022-05-22SwiftUI App 支持多语种 All In One
- 2022-05-10SwiftUI 组件参数简写 All In One
- 2022-04-14SwiftUI 学习笔记
- 2022-02-23Swift 文件夹和文件操作
- 2022-02-17Swift中使用KVO
- 2022-02-08Swift 汇编 String array
- 2022-01-30SwiftUI3.0页面反向传值