Большая часть приложения, над которым я работаю, это чат с Push-уведомлениями. Вся система работает отлично, за исключением того, что когда пользователь отправляет сообщение с эмодзи, получатель этого сообщения увидит это в своей заметке:
Когда получатель нажимает на push-уведомление, смайлики из сообщения хорошо отображаются в приложении, например так:
Сообщения хранятся на моем сервере в базе данных MySQL, а скрипт php упаковывает push-заметку JSON и отправляет ее в APNS.
Вот часть моего PHP-скрипта, который упаковывает JSON для отправки в APNS (позаимствован в основном из руководства Ray Wenderlich):
function makePayload($senderName, $text)
{
$nameJson = $this->jsonEncode($senderName);
$nameJson = truncateUtf8($nameJson, 20);
// Convert and truncate the message text
$textJson = $this->jsonEncode($text);
$textJson = truncateUtf8($textJson, self::MAX_MESSAGE_LENGTH);
$payload = '{"aps":{"alert":"' . $nameJson . ': ' . $textJson . '","sound":"default"} . '}';
return $payload;
}
Я довольно озадачен. Я не уверен, почему iOS неправильно анализирует часть «alert:» моей push-заметки JSON. Любые идеи очень ценятся.
Задача ещё не решена.
Других решений пока нет …