Как отправить смайлики через api в Onesignal - PullRequest
0 голосов
/ 12 марта 2019

Я использую OneSignal в своем проекте и хочу отправить свое сообщение с определенным смайликом через API (в моем случае, машинопись).

В моей строке сообщения у меня есть, например, следующее:

Эй, проснись!: flhed:

Но на устройстве Android я получаю текст с: flush: в текстовом формате вместо соответствующих смайликов.

Куда я иду не так или что яотпустить?

1 Ответ

2 голосов
/ 14 марта 2019

Первый метод

Скопируйте смайлик из Интернета и вставьте его вместе с вашим сообщением в 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 класса (я предполагаю, что вы расширили класс NotificationExtenderService в своем приложении. Если нет, проверьте ссылку ).

После этого добавьте

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

внутри вашего onNotificationProcessing (для эмодзи в теле уведомления используйте setContentText ).

Отправка уведомления с заменой эмодзи на Юникод Кроме того, добавьте <emoji> до и после Unicode (это идентифицирует эмодзи внутри приложения).

Например, если вы хотите отправить

user привет пользователь ?

используйте это

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

Для большего количества смайликов посетите Unicode здесь

...