Emojis支持Apple推送通知

时间:2013-05-20 11:59:42

标签: php iphone ios notifications apple-push-notifications

我正在使用名为“INTERSTIZIO”的iPhone应用程序。在此我实现了用户之间聊天等功能。此用户可以使用表情符号发送文本,位置和文本。如果应用程序未在接收端处于打开模式然后从后端推送生成并显示给receiver.I我能够像“UserName:Hello ...”一样显示消息,但我也想在推送消息中显示emojis符号,如“UserName:Hay :)”所以任何人有关如何使用emojis代码(例如微笑苹果代码是\ u263a)来实现这种类型的推送消息的想法吗?

我已按照此链接中提供的解决方案:http://code.iamcal.com/php/emoji/ 但是它返回了我在函数中传递的相同代码。它在网页上工作正常但在推送消息中没有。

在这里,我附上一个推文的屏幕截图,看它如何看待我的结尾。在它中你可以看到我已经显示了笑脸和灯光符号,但它显示使用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}!";

但在我的情况下,我已经显示了来自苹果的内置表情符号键盘并使用下面的代码我能够获得表情符号代码:

//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;

使用上面的代码我可以在聊天窗口中存储和显示表情符号但是如果接收者用户已关闭应用程序,那么在推送消息中我无法在推送消息中显示表情符号。

由于

enter image description here

2 个答案:

答案 0 :(得分:4)

你不应该搞乱html解码。正如你所说,笑脸的代码点是\u263A。在PHP中,您可以将UTF8编码的字符串表示为"\xE2\x98\xBA"

闪电螺栓(实际上是“高压符号”)在UTF-8中为\u26A1"\xE2\x9A\xA1"

这些字符都作为常规Unicode符号存在于某些非表情符号字体中。你可以看到:

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

我不知道你在哪里&#57661; from,但那将是\ue13d,这是一个空的私人使用Unicode范围,而不是Unicode标准中的表情符号Check it here可能是来自其他日本移动运营商标准,但对于iOS,你应该使用的Unicode。

您可以从this table获取上述编码或使用此Emoji search tool

至于Apple推。 This note表示您可以将表情符号作为UTF-8编码的字符串发送,因此像{"alert":"\u26A1SHOCKER\u26A1"}这样的json对象听起来会起作用。

答案 1 :(得分:1)

对于googlers。 json_encode()添加了双\

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

$payload = json_encode($body);
$payload = str_replace("\", "\\", $payload);