Как вы отправляете действенное (расширенное) уведомление с помощью исходящих сообщений Firebase? - PullRequest
0 голосов
/ 21 сентября 2018

Можно ли сделать так, чтобы исходящее сообщение пожарной базы доставлялось как действенное уведомление?Это то, чего я пытаюсь достичь: я хочу иметь возможность отправлять действенное исходящее сообщение о пожарной базе со своего iPad на мой iPhone.

Возможно ли это?

Вот какой сейчас мой кодпохоже.Я могу успешно отправить удаленное уведомление, и iPhone получает его.Я пробовал много разных вещей, чтобы заставить его отправлять действенное уведомление, но ничего не работает.

let Category = UNNotificationCategory(identifier: "MESSAGE",
      actions: [],
      intentIdentifiers: [],
      options: .customDismissAction)


    let snoozeAction = UNNotificationAction(identifier: "EMERGENCY_MESSAGE_ACTION",
      title: "Are you ok?",
      options: UNNotificationActionOptions(rawValue: 0))



    let center = UNUserNotificationCenter.current()
    center.setNotificationCategories([Category])


    let serverKey = "MY_SERVER_KEY"

    let topic = ""
    let url = URL(string: "https://fcm.googleapis.com/fcm/send")

     let postParams = [
        "to": "RECIEVING_DEVICE_TOKEN","mutable_content":true,


    "notification": [
            "body" : "\(emergencyMessage.text!)",
            "title" : "EMERGENCY!",
            "sound" : "alert.aiff", // or specify audio name to play
        "message_id": "12345"
        ],


    "data":[
    "apns":[
    "payload": [
    "aps": [
        "category": "MESSAGE"
        ]
        ]
        ]
]








]


        as [String : Any]




    let request = NSMutableURLRequest(url: url! as URL)
    request.httpMethod = "POST"
    request.setValue("key=\(serverKey)", forHTTPHeaderField: "Authorization")
    request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")



    do {
        request.httpBody = try JSONSerialization.data(withJSONObject: postParams, options: JSONSerialization.WritingOptions())
        print("My paramaters: \(postParams)")
    } catch {
        print("Caught an error: \(error)")
    }



    let task = URLSession.shared.dataTask(with: request as URLRequest) { (data, response, error) in
        if let realResponse = response as? HTTPURLResponse {
            if realResponse.statusCode != 200 {
                print("Not a 200 response")
            }
        }

        if let postString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue) as String? {
            print("POST: \(postString)")
        }
        }

        .resume()
}

1 Ответ

0 голосов
/ 21 сентября 2018

Исходящие сообщения не отправляются с одного устройства напрямую на другое.Они отправляются с устройства на сервер приложений, которым вы управляете .Ваш сервер приложений должен реализовывать протокол XMPP, определенный в документации .На вашем сервере вам придется выяснить, как отправить другое сообщение на другое устройство.

...