2013-06-15 2 views
0

푸시 알림을 보낼 서버 코드를 작성합니다. 메시지라는 양식 필드가 있습니다. 필요한 것은 이모티콘 문자를 메시지에 넣는 것입니다.NodeJS 서버의 메시지에 Emoji로 IOS 푸시 알림을 보내는 방법은 무엇입니까?

클라우드 문자의 경우 \ ue48d를 쓰면 서버가 '\ ue48d'문자열로 간주합니다.

푸시 알림에 사용할 수 있도록 어떻게 디코딩 할 수 있습니까?

업데이트 : 여기 내 서버 코드가 있습니다. 양식의 메시지 필드에 \ exxx를 쓰고이 코드로 인코딩 한 다음 Apple에 보냅니다.

exports.create = function(req, res){ 
    var devices = req.body.devices; 
    var message = req.body.message; 
    var note = new apn.Notification(); 
    note.expiry = Math.floor(Date.now()/1000) + 3600; // Expires 1 hour from now. 
    note.badge = 3; 
    note.sound = "ping.aiff"; 
    note.alert = message; 
    note.payload = {'messageFrom': 'Burak'}; 
    for (var i in devices) { 
     device = new apn.Device(devices[i]); 
     apnConnection.pushNotification(note, device); 
    } 

    res.send(200,'Successfull') 
} 
+0

JSON 인코딩 데이터를 서버에 디코딩하는 데 사용하는 코드를 게시하십시오. – Danack

+0

업데이트했습니다. 유니 코드 문자열을 인코딩/디코딩하는 방법을 모르겠습니다. – Burak

+0

그래서 이모티콘이 포함 된 푸시 메시지가 전송 될 때 현재 휴대 전화에서 무엇을 볼 수 있습니까? – Danack

답변

1

당신은 계속해서 다른 것을 말합니다. 먼저 말했다 : 나는 클라우드 문자 \ ue48d을 작성하는 경우

는, 서버가 문자열 '\ ue48d'로 참조하십시오. 이제

당신은 "\ e415 안녕하세요!"나는 쓰기

말 것 메시지 필드에. JSON에서 명백한 \ue48d을 지적의 위험에서

! = \e415

UTF8 문자 \ U와 같은 인코딩 된 후 \ue48d 즉 문자 코드는 JSON에 전화로 보낼 수있는 유효한 문자는 . \e415은 휴대 전화에서 이모티콘 문자로 표시되지 않는 이유입니다.

그럼 휴대 전화에 '\ue48d'을 보낼 때 휴대 전화에는 무엇이 표시됩니까? 즉 올바르게 인코딩 된 원본 문자열을 보낼 때 무엇을 보게됩니까?

편집

당신이

메시지 밖으로 즉 다시 보내기 전에, 당신은 아마 서버로 전송 된 메시지를 디코딩 할 필요가 서버에서 제대로 인코딩 된 문자열을 보낼 때 작동하는 경우 = JSON.parse (message);

서버가받는 메시지가 문자열 일 경우 그대로 작동해야합니다. 메시지가 배열 또는 개체 인 경우 전화로 메시지로 보내려면 적절한 항목을 골라야합니다.

+0

죄송합니다. \ ue48d이어야합니다.그리고 양식장에서 오는 것을 보내면 전화에서 \ ue48d를 봅니다. 서버에서 \ ue48d를 보내면 이모티콘이 보입니다. – Burak

관련 문제