#java #push-notification #apple-push-notifications
#java #push-уведомление #apple-push-уведомления
Вопрос:
Emoji отображается в виде символов unicode в push-уведомлениях. то есть: если у нас есть текст типа » ud83d ude0a». Это код смайлика SMILE, который отображается в виде символов Unicode или некоторое время отображает вопросительный знак в push-уведомлении.
Нужно ли что-нибудь еще сделать в коде или на стороне сервера. ? Любая помощь была бы оценена. мы используем Java на стороне сервера
Пример Json :
{
"to": "c2rMPP0eK04Ro0FJDgMflH:APA91bEydhoB0VU5W6PxJLnIRoFqOk5npEjlWzBlvdyBlX1Cp72t0bYxDyepP5Z9mWFQ2XYeUPw8PDo3QqT6Anh27wqnkBRbabTYKn0tByOZOMU6oRlrGur-efxN9_-8LlOmDZceg9Kl",
"notification": {
"body": "Hello",
"title": "This is done manually. uD83DuDE0A"
}
}
Мы пробуем это
byte[] emojis = user.getEmoji().getBytes();
String emojisAsString = new String(emojis, StandardCharsets.UTF_8);
Integer emojiCodePoint = emojisAsString.codePointAt(emojisAsString.offsetByCodePoints(0,0));
char emojiChars[] = {Character.highSurrogate(emojiCodePoint), Character.lowSurrogate(emojiCodePoint)};
Примечание: Если мы запускаем это из postman, то это работает, но не
работает при запуске из серверной части
Комментарии:
1. Не могли бы вы отправить запрос на некоторые конечные точки http, такие как mockbin.org чтобы найти разницу? Нравится
curl -X POST mockbin.org/request -H 'Content-type: application/json' -d '{"emoji":"uD83DuDE0A"}'
. Отправьте запрос своим серверным модулем и почтальоном.2. Где хранятся эмодзи вашего пользователя? Что это за объект
user.getEmoji()
, ваша база данных пытается перевести и сохранить emoji. Вам нужно будет предоставить больше информации из вашего кода и о том, как структурирована ваша база данных для точного ответа.
Ответ №1:
Попробуйте эту строку:
"u{D83D}u{DE0A}"
Ответ №2:
Если вы читаете из базы данных, попробуйте обновить драйвер вашей базы данных. Например, если вы используете MySQL, используйте ‘mysql-connector-java:5.1.47’ или выше.
Ответ №3:
» uD83D uDE0A» или «u{D83D} u{DE0A}» не закодированы в emoji.
Вы должны кодироваться как u{
и }
:
"u{1F600} u{1F616}"
См. ссылку:
Это работает на playground. Проверьте, работает ли это на панели уведомлений.