2013-05-20 38 views
8

Tôi đang làm việc trên ứng dụng iPhone có tên "INTERSTIZIO" .Tôi đã triển khai chức năng như trò chuyện giữa người dùng.Trong người dùng này, bạn có thể gửi văn bản, vị trí và văn bản bằng biểu tượng cảm xúc. trong chế độ mở ở đầu thu sau đó từ đẩy phụ trợ được tạo ra và hiển thị cho người nhận.Tôi có thể hiển thị tin nhắn trong push như "UserName: Hello ..." nhưng tôi cũng muốn hiển thị biểu tượng emojis, như "UserName: Hay :) "trong tin nhắn push để bất cứ ai có ý tưởng về làm thế nào tôi có thể đạt được loại tin nhắn push bằng cách sử dụng mã emojis (như cho apple apple code là \ u263a) của quả táo?Hỗ trợ biểu tượng cảm xúc trong thông báo đẩy của Apple

Tôi đã làm theo giải pháp được cung cấp trong liên kết này: http://code.iamcal.com/php/emoji/ Nhưng nó trả về cùng mã mà tôi đã chuyển trong hàm.Its làm việc tốt trên các trang web nhưng không có trong thông báo đẩy.

Ở đây tôi đính kèm một ảnh chụp màn hình đẩy nó trông như thế nào. Trong đó, bạn có thể thấy rằng tôi đã hiển thị biểu tượng cười và ánh sáng nhưng được hiển thị bằng mã HTML được hỗ trợ như mã PHP dưới đây:

$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}!"; 

Nhưng trong trường hợp của tôi, tôi đã hiển thị bàn phím biểu tượng cảm xúc sẵn có từ táo và sử dụng mã dưới đây tôi có thể để có được biểu tượng cảm xúc mã:

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

sử dụng mã ở trên tôi có thể lưu trữ và hiển thị biểu tượng cảm xúc trong cửa sổ chat nhưng nếu người dùng có ứng dụng đã đóng thì trong mủ h thông báo Tôi không thể hiển thị biểu tượng cảm xúc trong tin nhắn push.

Cảm ơn

enter image description here

+1

@PartiallyFinite Ohh vâng tôi có cùng một vấn đề. – M007

+0

Kiểm tra câu trả lời thứ hai cho câu hỏi đó và xem câu trả lời có giúp bạn không. – Greg

+0

Chủ đề ở trên ngụ ý điều này có thể hoạt động. Tôi đoán rằng chuỗi push không đúng utf-8. Trong ứng dụng của bạn, lấy chuỗi, tạo một đối tượng dữ liệu của nó bằng cách sử dụng mã hóa UTF8, sau đó ghi lại các byte.Đoán của tôi là bạn sẽ thấy \ u ... ký tự không phải là utf8 –

Trả lời

4

bạn không cần phải mess về với html giải mã. Như bạn nói, điểm mã cho khuôn mặt tươi cười là \u263A. Trong PHP, bạn có thể biểu thị rằng trong một chuỗi được mã hóa UTF8 là "\xE2\x98\xBA"

Tia sét (thực tế 'biển báo điện áp cao') là \u26A1 hoặc "\xE2\x9A\xA1" trong UTF-8.

Cả hai ký tự này đều có trong một số phông chữ không phải biểu tượng cảm xúc làm biểu tượng Unicode thông thường. Bạn có thể xem với:

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

Tôi không biết bạn có ở đâu &#57661; từ, nhưng đó sẽ là \ue13d nằm trong phạm vi Unicode sử dụng riêng lẻ và không phải biểu tượng cảm xúc trong tiêu chuẩn Unicode Check it here Có thể là từ một số tiêu chuẩn mạng di động khác của Nhật Bản, nhưng đối với iOS, bạn nên sử dụng Unicode.

Bạn có thể nhận mã hóa ở trên từ this table hoặc sử dụng số Emoji search tool này.

Đối với Apple đẩy. This note cho biết bạn có thể gửi biểu tượng cảm xúc dưới dạng chuỗi được mã hóa UTF-8, vì vậy đối tượng json như {"alert":"\u26A1SHOCKER\u26A1"} có vẻ như sẽ hoạt động.

1

dành cho người gác xe. json_encode() thêm double \

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

$payload = json_encode($body); 
$payload = str_replace("\", "\\", $payload); 
Các vấn đề liên quan