2025-05-22 12:11:18 +08:00

50 lines
1.7 KiB
Swift

//
// ArchiveProcessor.swift
// NotificationServiceExtension
//
// Created by huangfeng on 2024/5/29.
// Copyright © 2024 Fin. All rights reserved.
//
import Foundation
import RealmSwift
class ArchiveProcessor: NotificationContentProcessor {
private lazy var realm: Realm? = {
Realm.Configuration.defaultConfiguration = kRealmDefaultConfiguration
return try? Realm()
}()
func process(identifier: String, content bestAttemptContent: UNMutableNotificationContent) async throws -> UNMutableNotificationContent {
let userInfo = bestAttemptContent.userInfo
var isArchive: Bool = ArchiveSettingManager.shared.isArchive
if let archive = userInfo["isarchive"] as? String {
isArchive = archive == "1" ? true : false
}
if isArchive {
let alert = (userInfo["aps"] as? [String: Any])?["alert"] as? [String: Any]
let title = alert?["title"] as? String
let subtitle = alert?["subtitle"] as? String
let body = alert?["body"] as? String
let url = userInfo["url"] as? String
let group = userInfo["group"] as? String
let image = userInfo["image"] as? String
try? realm?.write {
let message = Message()
message.title = title
message.subtitle = subtitle
message.body = body
message.url = url
message.image = image
message.group = group
message.createDate = Date()
realm?.add(message)
}
}
return bestAttemptContent
}
}