Update to new APNS definitions
This commit is contained in:
parent
4eb1e7f398
commit
86f9ee4ff8
@ -15,7 +15,7 @@ public struct PushMessage: Codable {
|
||||
/**
|
||||
The notification content.
|
||||
*/
|
||||
public let payload: APNSwiftPayload
|
||||
public let payload: APNSPayload
|
||||
|
||||
/**
|
||||
The value of this header must accurately reflect the contents of your notification’s payload.
|
||||
@ -23,7 +23,7 @@ public struct PushMessage: Codable {
|
||||
If there’s a mismatch, or if the header is missing on required systems, APNs may return an error, delay the delivery of the notification, or drop it altogether.
|
||||
- Note: Required for watchOS 6 and later; recommended for macOS, iOS, tvOS, and iPadOS
|
||||
*/
|
||||
public let pushType: APNSwiftConnection.PushType
|
||||
public let pushType: APNSClient.PushType
|
||||
|
||||
/**
|
||||
The date at which the notification is no longer valid.
|
||||
@ -61,8 +61,8 @@ public struct PushMessage: Codable {
|
||||
- Parameter collapseIdentifier: An optional identifier to group push notifications
|
||||
*/
|
||||
public init(recipients: [PushToken],
|
||||
payload: APNSwiftPayload,
|
||||
pushType: APNSwiftConnection.PushType,
|
||||
payload: APNSPayload,
|
||||
pushType: APNSClient.PushType,
|
||||
expiration: Date? = nil,
|
||||
lowPriority: Bool = false,
|
||||
collapseIdentifier: String? = nil) {
|
||||
@ -75,11 +75,63 @@ public struct PushMessage: Codable {
|
||||
}
|
||||
}
|
||||
|
||||
extension APNSwiftConnection.PushType: Codable {
|
||||
extension APNSClient.PushType: Codable {
|
||||
|
||||
struct PushTypeDecodingError: Error {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.singleValueContainer()
|
||||
try container.encode(rawValue)
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let container = try decoder.singleValueContainer()
|
||||
let raw = try container.decode(UInt8.self)
|
||||
|
||||
switch raw {
|
||||
case 1:
|
||||
self = .alert
|
||||
case 2:
|
||||
self = .background
|
||||
case 3:
|
||||
self = .mdm
|
||||
case 4:
|
||||
self = .voip
|
||||
case 5:
|
||||
self = .fileprovider
|
||||
case 6:
|
||||
self = .complication
|
||||
default:
|
||||
throw PushTypeDecodingError()
|
||||
}
|
||||
}
|
||||
|
||||
private var rawValue: UInt8 {
|
||||
switch self {
|
||||
case .alert:
|
||||
return 1
|
||||
case .background:
|
||||
return 2
|
||||
case .mdm:
|
||||
return 3
|
||||
case .voip:
|
||||
return 4
|
||||
case .fileprovider:
|
||||
return 5
|
||||
case .complication:
|
||||
return 6
|
||||
//case .location:
|
||||
// return ".location-query"
|
||||
default:
|
||||
return 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension APNSwiftConnection.PushType {
|
||||
extension APNSClient.PushType {
|
||||
|
||||
/// The extension to add to the push topic depending on the notification type
|
||||
public var topicExtension: String {
|
||||
@ -94,8 +146,11 @@ extension APNSwiftConnection.PushType {
|
||||
return ".pushkit.fileprovider"
|
||||
//case .location:
|
||||
// return ".location-query"
|
||||
//case .complication:
|
||||
// return ".complication"
|
||||
case .complication:
|
||||
return ".complication"
|
||||
default:
|
||||
return ""
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user