Я работаю над приложением iPhone под названием «INTERSTIZIO». В этом я реализовал такие функции, как чат между пользователями. В этом случае пользователь может отправлять текст, местоположение и текст с помощью символа emojis. Если приложение не находится в открытом режиме на конце приемника, то из бэкэнд push генерируется и отображается на приемнике. Я могу отображать сообщение в push, например «UserName: Hello …», но я также хочу отображать символ emojis, например «UserName: Hay :)» в push-сообщении, чтобы у кого-либо появилась идея относительно как я могу достичь этого типа push-сообщения с использованием кода emojis (например, для кода яблока с яблоком – яблоко?)?
Я выполнил решение, указанное в этой ссылке: http://code.iamcal.com/php/emoji/ Но он возвращает тот же код, который я передал в функции. Он отлично работает на веб-страницах, но не в push-сообщении.
Здесь я добавляю один снимок экрана, как он смотрит на мой конец. В нем вы можете увидеть, что я отобразил смайлик и символ освещения, но его отобразили с помощью поддерживаемого HTML кода, например, ниже кода скрипта PHP:
$lightning = html_entity_decode('',ENT_NOQUOTES,'UTF-8'); //add this to the 'alert' portion of your APNS payload: $message = "You just got the {$lightning}SHOCKER{$lightning}!";
Но в моем случае я отобразил встроенную клавиатуру emojis из apple и используя код ниже, я могу получить код emojis:
//store code of emojis at backend NSData *data = [txtspeech.text dataUsingEncoding:NSNonLossyASCIIStringEncoding]; NSString *valueUnicode = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; //Display emojis in mobile chat window NSData *data = [objchat.strchat dataUsingEncoding:NSUTF8StringEncoding]; NSString *valueEmoj = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding]; cell.txtchat.text=valueEmoj;
Используя вышеприведенный код, я могу хранить и отображать emojis в окне чата, но если пользователь-получатель закрыл приложение, то в push-сообщении я не могу отображать символ emojis в push-сообщении.
благодаря
вам не нужно обходиться с расширением html. Как вы говорите, кодовым пунктом для улыбающегося лица является \u263A
. В PHP вы можете представить, что в кодировке, кодированной UTF8, как "\xE2\x98\xBA"
Молниеносный болт (на самом деле «знак высокого напряжения») находится в UTF-8 или "\xE2\x9A\xA1"
.
Оба этих символа присутствуют в некоторых шрифтах не-emoji как обычные символы Unicode. Вы можете видеть:
<?php header('Content-type: text/html; charset=utf-8'); echo "\xE2\x9A\xA1"; echo "\xE2\x98\xBA";
Я не знаю, где вы получили 
; от, но это будет \ue13d
который находится в пустом частном использовании Unicode, а не в Emoji в стандарте Unicode. Проверьте его здесь. Возможно, это из какого-то другого японского стандарта мобильной связи, но для iOS вы должны использовать Unicode.
Вы можете получить мои вышеуказанные кодировки из этой таблицы или использовать этот инструмент поиска Emoji .
Что касается Apple, то нажмите. В этой заметке вы можете отправить emoji как кодированные строки UTF-8, поэтому такой json-объект, как {"alert":"\u26A1SHOCKER\u26A1"}
похоже, что он будет работать.
для гуглеров. json_encode () добавляет double \
$message = "\ue04a"; $body['aps'] = array( 'alert' => $message, 'sound' => 'default', 'type' => $type, 'param' => $param ); $payload = json_encode($body); $payload = str_replace("\", "\\", $payload);