ios - Firebase 自定义消息 iOS

标签 ios swift firebase

我指的是 https://firebase.google.com/docs/cloud-messaging/ios/receive 中的解释消息部分.

我可以在代码的哪个位置更改 Firebase 中的通知文本?

最佳答案

为了向设备发送推送通知,您需要有一个脚本(或一段代码)理想地托管在可以代表您发送推送通知的服务器上。
您可以在那里自定义消息,甚至可以在收到通知时播放音频。
以下是 java 中的代码片段,可用于向设备(或一组设备)发送推送通知。

private Map sendPush(String to, String from, String title, String message,
            String sound) throws IOException {
    sound = (sound != null) ? sound : "default";  // set default audio file name
    // Creating the URL and connection
    URL url = new URL(FCM_URL); // your firebase URL
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json");
    conn.setRequestProperty("Authorization", "key=" + FCM_KEY); // the firebase project key 

    conn.setDoOutput(true);

    // set the notification body
    Map<String, String> notificationBody = new HashMap();
    notificationBody.put("title", title); // notification title
    notificationBody.put("body", message); // notification message
    notificationBody.put("sound", sound);
    notificationBody.put("badge", "1");

    Map<String, String> dataBody = new HashMap();
    dataBody.put("sender", from); // sender id

    Map<String, Object> pushBody = new HashMap();
    pushBody.put("notification", notificationBody);
    pushBody.put("data", dataBody);
    pushBody.put("to", to); // receiver(s) id
    pushBody.put("priority", "high");

    // convert your dictionary to json string using Google Gson library (similar to JsonSerialization class in swift)
    String input = new Gson().toJson(pushBody);

    // write input bytes in request body
    try (OutputStream os = conn.getOutputStream()) {
        os.write(input.getBytes());
        os.flush();
    }

    StringBuilder responseString;
    Reader reader = new InputStreamReader(conn.getInputStream()); // send request and receive response 

    // parse response
    try (BufferedReader in = new BufferedReader(reader)) {
        String inputLine;
        responseString = new StringBuilder();
        while ((inputLine = in.readLine()) != null) {
            responseString.append(inputLine);
        }
    }

    // using Google Gson to convert json string into Map (similar to JsonSerialization class in swift)
    Map<String, Object> responseObject = new Gson().fromJson(responseString.toString(),
                Map.class);

    return responseObject;
}

由于这是一个 java 代码,所以我将它托管在部署在 Apache Tomcat 服务器上的 java 应用程序中。

您可以在各种语言(如 php 或 node.js 等)中找到几个类似的实现。

希望对你有帮助

关于ios - Firebase 自定义消息 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50355533/

相关文章:

ios - 转换场景时出现错误? - Sprite 套件

firebase - 在哪里检查 Firebase 实时数据库位置(美国、欧盟或亚洲)

ios - 返回 xcassets 中目录的字符串文件名数组的函数

swift - 从 swift 运行一个 .sh 文件?

ios - UITextView 不改变 NSTextAlignment 属性

ios - Swift DateFormatter - 打印一年中的星期和年份

ios - Swift 乱序执行 firebase 调用

firebase - Flutter Firebase 数据库变量在方法后未收到值

iphone - CFWriteStreamWrite/CFReadStreamWriter 容易超时吗?

ios - 如何在 swift 中使用 NSUserDefaults 保存标签?