推送通知是开发人员保持用户参与其应用程序的最流行方法之一。在iOS应用程序中,可以使用Apple Push Notification Service(APN)合并推送通知。
运行效果

但是,这并不像听起来那样简单,因为要进行设置有很多事情要做。另外,更糟糕的是,由于Xcode的iOS模拟器不支持推送通知,因此我们必须使用真实的设备来测试推送通知是否有效。
不过近期有个好消息, Xcode 11.4 beta发布后iOS Simulator
已经支持测试推送通知了。
我们来看一下苹果官方的说明:
Simulator支持模拟远程推送通知,包括后台内容获取通知。在模拟器中,将APNs文件拖放到目标模拟器上。该文件必须是带有有效Apple Push Notification Service playload(包括“ aps”密钥)的JSON文件。它还必须包含顶层的“ Simulator Target Bundle”,其字符串值与目标应用程序的bundle标识符匹配。
simctl还支持发送模拟的推送通知。如果文件包含“ Simulator Target Bundle”,则不需要束标识符,否则必须将其作为参数提供
$ xcrun simctl push <device> com.example.my-app ExamplePush.apns
如果您曾经被aps折磨过,就知道这个功能是多么的及时有用了。
接下来,我还是通过具体的代码来体验吧。
准备工具
为了测试这个新功能,您显然需要具有Xcode 11.4 beta或更高版本。我目前用的是Xcode 11.4 beta。

第一步:让我们创建了项目名称叫TestPushNotifications
第二步:在AppDelegate.swift中添加下面代码
引入 UserNotifactions
import UIKit
import UserNotifications
创建 registerForPushNotifications()函数
func registerForPushNotifications() {
UNUserNotificationCenter.current()
.requestAuthorization(options: [.alert, .sound, .badge]) {(granted, error) in
print("Permission granted: \(granted)")
}
}
在 application(:didFinishLaunchingWithOptions:)方法中调用上面的函数