简体   繁体   English

西里尔语的iOS推送通知

[英]iOS Push notifications in cyrillic

Hullo, I am sending push notifications by means of this php snippet: 您好,我是通过以下php代码段发送推送通知的:

// Build the binary notification
 $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;

// Send it to the server
 $result = fwrite($fp, $msg, strlen($msg));

it works fine and good with latin languages but, when I try to send a russian notification, nothing arrives, notwithstanding the logs confirm the correct delivery. 它可以使用拉丁语正常工作,但是,当我尝试发送俄语通知时,尽管日志确认了正确的发送,但仍然没有任何结果。

notify fbartolom@gmail.com for language ru Saturday 1st of March 2014 08:15:59 PM notify 246e2e720c0f307ef3887922d72b6b6886fa19b44b6dbae7cda8913fe149958e con Ваше активное бронирование было прервана пользователем. 通知fbartolom@gmail.com以获取语言ru 2014年3月1日(星期六)08:15:59 PM通知246e2e720c0f307ef3887922d72b6b6886fa19b44b6dbae7cda8913fe149958e conВашеактивноебронированиебыле dopo* * *:/var/www/html/php/push/taxi/distribution/ck.pem deviceToken:246e2e720c0f307ef3887922d72b6b6886fa19b44b6dbae7cda8913fe149958eConnected to APNS invio payload{"aps":{"alert":"\В\а\ш\е \а\к\т\и\в\н\о\е \б\р\о\н\и\р\о\в\а\н\и\е \б\ы\л\о \п\р\е\р\в\а\н\а \п\о\л\ь\з\о\в\а\т\е\л\е\м.","sound":"default"}}Message successfully delivered I read about issues on the length of the packet, but in both phases it calculates it while sending the message and so it should be the correct length. dopo * * *:/ var / www / html / php / push / taxi / distribution / ck.pem deviceToken:246e2e720c0f307ef3887922d72b6b6886fa19b44b6dbae7cda8913fe149958e已连接到APNS invio有效负载{“ aps”:{“ alert”:“ \\ u0412 \\ u04 \\ 04 u0430 \\ u043a \\ u0442 \\ u0438 \\ u0432 \\ u043d \\ u043e \\ u0435 \\ u0431 \\ u0440 \\ u043e \\ u043d \\ u0438 \\ u0440 \\ u043e \\ u0432 \\ u0430 \\ u043d \\ u0438 \\ u0435 \\ u0431 \\ u044b \\ u043b \\ u043e u0440 \\ u0435 \\ u0440 \\ u0432 \\ u0430 \\ u043d \\ u0430 \\ u043f \\ u043e \\ u043b \\ u044c \\ u0437 \\ u043e \\ u0432 \\ u0430 \\ u0442 \\ u0435 \\ u043b \\ u0435 \\ u0435 \\ u043c。“,”声音“:”默认“} }邮件成功发送后,我了解了有关数据包长度的问题,但是在两个阶段中,它都会在发送邮件时对其进行计算,因此它应该是正确的长度。 Any idea about what to do to fix it? 关于如何解决该问题的想法?

Your code looks good and I'm leaning towards a "size" problem. 您的代码看起来不错,并且我倾向于解决“大小”问题。 Try using mb_strlen in your code instead of strlen as strlen cannot accurate calculate length of multi-byte characters. 尝试在代码中使用mb_strlen而不是strlen,因为strlen无法准确计算多字节字符的长度。

I think the optimal solution is to send english strings and localize them in the app. 我认为最佳的解决方案是发送英文字符串并将其本地化在应用程序中。 The only downsize of it is that you need to submit an update each time you want to add a new notification type. 唯一的缩水是您每次想添加新的通知类型时都需要提交更新。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM