不同的语言通知Firebase

时间:2017-08-04 15:13:35

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

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

我试图让两个不同的观众,但两个观众是空的。

2 个答案:

答案 0 :(得分:0)

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

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

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

因此,您必须在后端对通知消息进行此转换,然后使用通知将其发送给用户。

HTH。

答案 1 :(得分:0)

使用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;
}

您将获得使用您的语言的字符串。希望这会有所帮助。