想要推送消息就需要添加
import UserNotifications包
申请权限
UNUserNotificationCenter.current()//获取UNUserNotificationCenter类的单例
requestAuthorization
requestAuthorization申请权限:
badge:角标
sound:声音
alert:横幅
//发起权限申请
UNUserNotificationCenter.current().requestAuthorization(options: [.alert,.sound,.badge], completionHandler: {
(granted, error) in
if let error = error{
print(error.localizedDescription)
}
if granted{
print("用户已经授权")
} else {
print("通知服务器不要再发送了")
}
});
这个授权通知只发送一次,除非删除app
如果用户第一次拒绝了通知,用户自己也可以通过
自己打开权限
getNotificationSettings
每次发送通知之前都要获取一下状态再发送
UNNotificationSettings分三块
Getting authorization status:获取授权状态
getting device specific settings:获取设备通知配置
getting interface setting:获取通知界面配置
app只有在后台时才会接收到这个通知
当一个活动开始时activity kit 会从apple push notification service(apn)获得一个push token
push token对于请求的每一个活动是唯一的,这也是为什么你的app需要发送这个token给你的service在他发送push之前,无论如何你的service都必须发送token给apn,最后apn会将payload发送给设备,这将唤醒你的小控件来显示UI
专业术语
apn
apple push norification service