UserNotifications框架简介

本文介绍了Apple的UserNotifications框架,该框架在iOS 10、tvOS 10和watchOS 3中引入,用于统一处理本地和远程通知。文章详细讲解了如何注册通知、安排通知、接收通知、管理通知以及自定义通知操作。通过示例代码,读者可以学习如何在应用中集成和使用UserNotifications框架。
摘要由CSDN通过智能技术生成

介绍

借助iOS 10,tvOS 10和watchOS 3,Apple引入了一个称为UserNotifications框架的新框架。 这套全新的API提供了一种统一的,面向对象的方式,可以在这些平台上使用本地和远程通知。 与现有的API相比,此功能特别有用,因为现在与本地和远程通知的处理非常相似,并且不再仅通过词典来访问通知内容。

在本教程中,我将介绍这个新框架的基础知识,并展示如何轻松利用它来支持应用程序的通知。

本教程要求您使用最新的iOS,tvOS和watchOS SDK运行Xcode 8。

1.注册通知

任何支持通知的应用程序的第一步都是向用户请求权限。 与以前的iOS版本一样,在使用UserNotifications框架时,通常的做法是在应用程序启动完成后立即执行此操作。

在使用任何UserNotifications API之前,您需要将以下import语句添加到访问框架的任何Swift代码文件中:

import UserNotifications

接下来,为了注册您的应用程序以接收通知,您需要将以下代码添加到AppDelegateapplication(_:didFinishLaunchingWithOptions:)方法中:

let center = UNUserNotificationCenter.current()
let options: UNAuthorizationOptions = [.alert, .badge, .sound]
center.requestAuthorization(options: options) { (granted, error) in
    if granted {
        application.registerForRemoteNotifications()
    }
}

最初使用此代码,我们获得对当前UNUserNotificationCenter对象的引用。 接下来,我们使用希望应用程序具有的通知功能来配置UNAuthorizationOptions 。 请注意,您可以在此处使用任意选项组合,例如, alertbadgesound

然后使用这两个对象,通过在我们的UNUserNotificationCenter实例上调用requestAuthorization(options:completionHandler:)方法来为我们的应用请求显示通知的授权。 代码的完成处理程序块向其中传递了两个参数:

  • 一个Bool值,表示用户是否授予了授权。
  • 一个可选的Error对象,如果系统由于某种原因而无法为您的应用请求通知授权,它将包含信息。

请注意,注册远程通知将调用与以前的iOS版本相同的UIApplication回调方法。 成功时, application(_:didRegisterForRemoteNotificationsWithDeviceToken:)将被调用,并application(_:didFailToRegisterForRemoteNotificationsWithError:)将失败被调用。

2.安排通知

在本教程的这一部分中,我们将完全专注于使用UserNotifications框架安排本地通知。 由于引入了新框架,因此远程推送通知的发送未更改。

在计划之前,本地通知由UNNotificationRequest类的实例表示。 此类型的对象由以下组件组成:

  • 标识符:唯一的String ,可让您将各个通知彼此区分开。
  • 内容: UNNotificationContent对象,其中包含显示通知所需的所有信息,包括标题,副标题和应用徽章编号。
  • 触发器: UNNotificationTrigger对象,系统使用它来确定何时将通知“发送”到您的应用。

首先,我们将研究可以为本地通知设置的各种类型的触发器。 UNNo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值