2013-05-20 4 views
8

Я работаю над приложением iPhone под названием «INTERSTIZIO». В этом я реализовал такие функции, как чат между пользователями. В этом случае пользователь может отправлять текст, местоположение и текст с помощью символа emojis. Если приложение не является в открытом режиме на конце приемника, тогда из бэкэнда нажата сгенерирована и отображается на приемник. Я могу отображать сообщение в push, как «UserName: Hello ...», но я также хочу отображать символ emojis, например «UserName: Hay :) «в push-сообщении, чтобы у кого-нибудь появилась идея относительно того, как я могу достичь этого типа push-сообщения с использованием кода emojis (например, для кода яблока с яблоком - яблоко?)?Поддержка Emojis в уведомлении Apple push

Я следил за решением, данным в этой ссылке: http://code.iamcal.com/php/emoji/ Но он возвращает тот же код, который я передал в функции. Он отлично работает на веб-страницах, но не в push-сообщении.

Здесь я прилагаю один снимок экрана толчка, как она выглядит на моем end.In это вы можете увидеть, что я отображается смайлик и освещение символа, но его отображается с помощью 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 клавиатуры из яблока и используя ниже кода, который я могу получить 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; 

Использование выше коды я могу хранить и отображать смайлики в окне чата но если пользователь-получатель закрыл приложение, то в гной h message Я не могу отображать символ emojis в push-сообщении.

Благодаря

enter image description here

+1

@PartiallyFinite О, да, у меня такая же проблема. – M007

+0

Проверьте второй ответ на этот вопрос и посмотрите, поможет ли он вам. – Greg

+0

Поток выше означает, что это может сработать. Я предполагаю, что строка push не является правильным utf-8. В своем приложении захватите строку, создайте объект данных с помощью кодировки UTF8, затем запишите байты.Я предполагаю, что вы увидите символы \ u ... chars not utf8 –

ответ

4

вам не нужно возиться с HTML декодирования. Как вы говорите, код для улыбающегося лица - \u263A. В PHP вы можете представить, что в строке UTF8 кодировке, как "\xE2\x98\xBA"

Молния (на самом деле «высокий знак напряжения») является \u26A1 или "\xE2\x9A\xA1" в UTF8.

Оба эти символа присутствуют в некоторых не-emoji-шрифтах как обычные символы Unicode. Вы можете увидеть:

<?php 
header('Content-type: text/html; charset=utf-8'); 
echo "\xE2\x9A\xA1"; 
echo "\xE2\x98\xBA"; 

Я не знаю, где вы получили &#57661; от, но это будет \ue13d, который находится в пустом частном использовании Unicode, а не в Emoji в стандарте Unicode. Check it here Возможно, это из какого-либо другого японского стандарта мобильной связи, но для iOS вы должны использовать Unicode.

Вы можете получить мои вышеуказанные кодировки от this table или использовать это Emoji search tool.

Что касается Apple толчок. This note говорит, что вы можете отправить emoji как кодированные строки UTF-8, поэтому похоже, что json-объект вроде {"alert":"\u26A1SHOCKER\u26A1"} будет работать.

1

для гуглеров. json_encode() добавляет double \

$message = "\ue04a"; 
$body['aps'] = array(
        'alert' => $message, 
        'sound' => 'default', 
        'type' => $type, 
        'param' => $param 
       ); 

$payload = json_encode($body); 
$payload = str_replace("\", "\\", $payload); 
Смежные вопросы