如何在 Onesignal 中通过 api 发送表情符号

How to send emoji via api in Onesignal

我在我的项目中使用 OneSignal,我想通过 api(在我的例子中是打字稿)发送带有特定表情符号的消息。

在我的消息字符串中,例如,这个:

Hey, wake up! :flushed:

但是在 Android 设备上,我得到的文本是:flushed: 文本格式而不是相应的表情符号。

我哪里错了或者我要放弃什么?

第一种方法

从网上复制表情符号并将其与您的消息一起粘贴到 API。

如果以上方法不行,

第二种方法

首先,创建一个方法

public String getMessageWithEmoji(String originalMessage){


    String convertedEmoji;
    Matcher matcher = Pattern.compile("<emoji>(.*?)<emoji>").matcher(originalMessage);
    while (matcher.find()) {
        Log.e("extracted emoji",matcher.group(1));
        int hex = Integer.parseInt(matcher.group(1).substring(2), 16);
        convertedEmoji= String.valueOf(Character.toChars(hex));


        originalMessage=originalMessage.replace(matcher.group(),convertedEmoji);

    }

    return originalMessage;
}

在你的 NotificationExtenderExample class 中(我假设你已经在你的应用程序中扩展了 NotificationExtenderService class。如果没有检查这个 link ).

完成后,添加

 builder.setContentTitle(getMessageWithEmoji(receivedResult.payload.title));

在您的 onNotificationProcessing 方法中(对于通知正文中的表情符号,请使用 setContentText).

使用 Unicode 替换表情符号发送通知。此外,在您的 Unicode 前后添加 <emoji>(这是为了在应用程序中识别表情符号)。

例如,如果你想发送

hello user

使用这个

 <emoji>U+1F601<emoji> hello user <emoji>U+1F602<emoji>

如需更多表情符号 Unicode,请访问 here