【问题标题】:different language notification Firebase不同的语言通知 Firebase
【发布时间】:2018-01-12 14:19:30
【问题描述】:

如果设备是英文的,我如何发送通知,而其他语言的通知是其他语言?

我尝试制作两个不同的受众,但两个受众都是空的。

【问题讨论】:

  • 您能否更详细地描述您想要实现的目标。谢谢。
  • @iamyogish 我想根据设备的语言发送通知消息
  • 如果语言数量较少,您可以使用Topic Messaging。这将需要客户端代码根据用户区域订阅主题。需要向为该语言定义的主题名称多次发送通知,针对每种支持的语言发送一次。

标签: ios swift firebase push-notification firebase-notifications


【解决方案1】:

使用 FCM 以多种语言发送推送通知的最佳方法是将消息(任何语言)编码为 UTF-8 格式并发送。

在android端消息会这样来。

"[30, 45, 13, 54,12, 33]" **这些数字可能是负值

现在只剩下将 JSONArray 解码为 String 的工作了。

private static String getStringFromJSONArray(String text)
{
    String decodedText = "";
    Gson converter = new Gson();
    Type type = new TypeToken<List<Byte>>(){}.getType();
    List<Byte> iList = converter.fromJson(text, type);

    byte[] bytes = new byte[iList.size()];

    for(int i = 0; i<iList.size(); i++)
    {
        bytes[i] = iList.get(i);
    }

    decodedText = new String(bytes, StandardCharsets.UTF_8);
    return decodedText;
}

你会得到你的语言的字符串。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    每当您向用户发送通知时,您都会发送一个静态负载,其中包含需要在收到通知时向用户显示的消息。

    收到通知后,我们/iOS 无法将消息从一种语言翻译成另一种语言。

    所以我能想到的一个解决方案是,您必须找出用户的语言设置或偏好(基于他的语言环境),然后您必须将此偏好存储在您的后端。然后,当您想向该用户发送通知时,您可以查找他的语言偏好并将您的通知消息转换为该特定语言,并将消息设置为有效负载并将其发送给用户。

    所以底线是,您必须在后端对通知消息进行此翻译,然后使用通知将其发送给用户。

    HTH。

    【讨论】:

    • 是的,这就是我想要做的,但我如何在 Firebase 控制台中管理目标?
    • @Max0u 我对 Firebase 不太熟悉。我很抱歉。如果你能告诉我 firebase 中的目标是什么,我可能会提供帮助。
    • 目标是一组设备。例如我想用英语定位所有设备并用英语发送通知
    • 哦,好吧。我的做法是,每当我在后端(firebase)中注册设备以及设备令牌(用于发送通知)时,我还将发送用户的语言首选项,您可以获得语言信息来自 Locale 函数。然后,您可以将设备信息与语言首选项一起存储。当您要发送通知时,您可以查找语言,然后翻译您的消息,然后将其发送给用户。
    猜你喜欢
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多