0

プッシュ通知を送信するサーバー コードをいくつか作成します。メッセージと呼ばれるフォームフィールドがあります。私が必要としているのは、メッセージにいくつかの絵文字を入れることです。

雲のキャラクターを \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')
}
4

1 に答える 1

1

いろいろ言い続けていますね。あなたは最初に言った:

雲のキャラクターを\ue48dと書くと、サーバーは文字列 '\ue48d' として認識します。

今、あなたは言っています

「\e415 こんにちは!」と書きます。メッセージ欄へ。

明らかなことを指摘するリスクがあり\ue48dます !=\e415

JSON の UTF8 文字は \u のようにエンコードされ、文字コード ie\ue48dは JSON で電話に送信する有効な文字です。\e415そうではないため、携帯電話で絵文字として表示されません。

では、携帯電話に送信すると、携帯電話には何が表示されるの'\ue48d'でしょうか? つまり、元の正しくエンコードされた文字列を送信すると、何が見えますか。

編集

サーバーから適切にエンコードされた文字列を送信するときに機能する場合は、おそらくサーバーに送信されたメッセージをデコードしてから送り返す必要があります。

メッセージ = JSON.parse(メッセージ);

サーバーが受信するメッセージが単なる文字列である場合、それはそのまま機能するはずです。メッセージが配列またはオブジェクトの場合、適切なエントリを選択してメッセージとして電話に送信する必要があります。

于 2013-06-16T20:52:34.777 に答える