SwiftUI:本地通知

作者: 韦弦Zhy | 来源:发表于2020-09-16 08:37 被阅读0次

\color{red}{\Large \mathbf{Hacking \quad with \quad iOS: SwiftUI \quad Edition}}

{\Large \mathbf{潜力客户名单}}

{\Large \mathbf{Hot \ Prospects}}

iOS具有一个名为UserNotifications的框架,该框架几乎可以完全满足您的期望:让我们为用户创建可以在锁定屏幕上显示的通知。我们使用两种类型的通知,它们根据创建位置的不同而不同:本地通知是我们在本地调度的通知,远程通知(通常称为推送通知)是从某处的服务器发送的。

远程通知需要服务器才能工作,因为您将消息发送到Apple的推送通知服务(APNS),然后该服务将其转发给用户。但是相比之下,本地通知非常好用,因为只要用户允许,我们就可以随时发送任何消息。

要尝试此操作,请在 ContentView.swift 顶部附近添加一个额外的导入:

import UserNotifications

接下来,我们将建立一些基本结构,并在其中填充本地通知代码。使用本地通知需要先征求用户的许可,然后实际注册我们要显示的通知。我们会将所有这些操作放入VStack内的单独按钮中,因此请立即将其放入ContentView结构体中:

VStack {
    Button("Request Permission") {
        // first
    }

    Button("Schedule Notification") {
        // second
    }
}

好的,我们的设置已经完成,因此我们将重点放在两项重要工作中的第一个:请求授权以显示警报。通知可以采用多种形式,但是最常见的做法是要求获得显示横幅,声音和标记的权限——这并不意味着我们需要同时使用所有这些,而是​​要先获得权限前意味着我们以后可以选择。

当我们告诉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仍将通知分为三部分,以使其具有最大的灵活性:

  1. 内容就是应该显示的内容,可以是标题,子标题,声音,图像等。
  2. 触发器确定应在何时显示通知,并且可以是从现在起的秒数,将来的日期和时间或位置。
  3. 该请求结合了内容和触发器,还添加了唯一的标识符,因此您以后可以编辑或删除特定警报。如果您不想编辑或删除内容,请使用UUID().uuidString获取随机标识符。

当您只是在学习通知时,最容易使用的触发器类型是UNTimeIntervalNotificationTrigger,它使我们可以要求从现在起的几秒钟内显示通知。因此,将// second注释替换为:

let content = UNMutableNotificationContent()
content.title = "Feed the cat"
content.subtitle = "It looks hungry"
content.sound = UNNotificationSound.default

// 从现在起五秒钟显示此通知
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)

// 选择一个随机标识符
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)

// 添加我们的通知请求
UNUserNotificationCenter.current().add(request)

如果您现在运行应用程序,请按第一个按钮以请求通知权限,然后按第二个按钮以添加实际通知。

现在,重要的部分是:一旦添加了通知,请在模拟器中按Cmd + L锁定屏幕。几秒钟后,设备应该会发出声音,并显示我们的信息——nice!

译自 Scheduling local notifications

相关文章

  • SwiftUI:本地通知

    iOS具有一个名为UserNotifications的框架,该框架几乎可以完全满足您的期望:让我们为用户创建可以在...

  • swiftUI 发送本地通知(UNUserNotificatio

  • iOS 通知的使用

    源地址 本地通知属于UIKit框架、推送通知属于Foundation框架。 本地通知 本地通知是由本地应用触发的,...

  • iOS10 通知框架总结

    通知分为本地通知和远端通知,这里着重介绍本地通知。本地通知有三个步骤 Appdelegate中申请通知权限 App...

  • 通知--本地通知

    本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后...

  • iOS 本地推送通知

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

  • 本地推送通知、远程推送通知、激光推送

    title : 本地推送通知、远程推送通知、激光推送category : UI 本地推送通知、远程推送通知、激光...

  • UILocalNotification

    本文内容a.注册普通本地通知b.自定义操作的本地通知c.自定义可快捷回复的本地通知 注册普通本地通知 创建一个本地...

  • iOS14开发- 通知

    iOS 中的通知主要分为 2 种,本地通知和远程通知。 本地通知 使用步骤 导入UserNotifications...

  • iOS开发- 推送服务

    1,注册本地通知 使用本地通知之前是需要预先设置好通知的一些基本属性,然后向系统注册本地通知,通知会在设定好的时间...

网友评论

    本文标题:SwiftUI:本地通知

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