将 UNNotification 操作添加到远程推送通知 - Swift

问题描述

如何以编程方式向远程通知添加操作? Here 是 Apple 用于构建用于发送推送通知的 JSON Payload 的文档。重要的部分如下:

enter image description here

我有一个 PushNotification.swift 可以像这样发送推送通知

import SwiftUI

class PushNotification {
    func send(to token: String,title: String,subtitle: String,body: String) {
        let urlString = "https://fcm.googleapis.com/fcm/send"
        let url = URL(string: urlString)!
        
        let payload: [String : Any] =
            [
            "to" : token,"notification" : [
                "title" : title,"subtitle" : subtitle,"body" : body,]
        ]
        
        var request = URLRequest(url: url as URL)
        request.httpMethod = "POST"
        request.httpBody = try? JSONSerialization.data(withJSONObject: payload,options: [.prettyPrinted])
        request.setValue("application/json",forHTTPHeaderField: "Content-Type")
        request.setValue("key=\(SERVER_KEY)",forHTTPHeaderField: "Authorization")
        
        let task =  URLSession.shared.dataTask(with: request as URLRequest)  { (data,response,error) in
            do {
                if let jsonData = data {
                    if let jsonDataDict  = try JSONSerialization.jsonObject(with: jsonData,options: JSONSerialization.ReadingOptions.allowFragments) as? [String: AnyObject] {
                        print("JSON Data: \(jsonDataDict)")
                    }
                }
            } catch let error as NSError {
                print(error.debugDescription)
            }
        }
        task.resume()
    }
}

如何为类别操作构建负载?此外,我的 apns 文件如何与我的 POST 请求中的值相对应?没有 JSON 字符串插值,例如

{
"aps" : {
    "alert" : {
        "title" : ${content.title},...
        }
    }
}

我可以通过本地通知做到这一点,但我在添加操作然后允许用户通过远程通知回复所述操作时迷失了方向。

注意:我使用的是 Firebase (Firestore) 云消息传递

那只是服务器端。这应该无关紧要,因为它适用于操作,对吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)