標籤:android style blog http color java 使用 os
之前做的訊息推送,向Android和ios用戶端推送。這裡只說ios的推送,ios的推送最後都會推送到蘋果的APNS伺服器上,再有APNS伺服器推送到ios裝置上。因為考慮到這一點,第一版的訊息推送蘋果的採用了直接推送到蘋果的APNS伺服器上。
1) 基於 JavaPNS 2.2 的實現
參考地址 : http://www.cnblogs.com/lihaozy/archive/2013/03/13/2957904.html
參考地址2:http://511930751.iteye.com/blog/1595298
jar 下載: http://code.google.com/p/javapns/downloads/detail?name=JavaPNS_2.2.jar&can=2&q=
不足之處在於推送多個裝置的時候中間有一個的UDID不正確,會導致APNS串連斷開,後面的都無法完成推送。(我的判斷是 UDID length == 64)
2) 直接使用 APNS 推送
參考地址 : https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW21
用戶端需要每次登陸後上傳UDID(去年,UDID就不會變,因為UDID泄露,廣告到處都是,今年的時候發現UDID會變)。
中文參考 : http://www.cocoachina.com/applenews/devnews/2014/0528/8582.html
3) 其它第三方的
極光(api調用頻率600/min,標籤支援不限制)、
個推、
百度、
信鴿(標籤只支援1W個,api頻率基本不限制,目前不收費,ios和android的用戶端推送accessid\secretkey是分開的)……
ios的推送國際化(固定的詞語)
之前做攝像機訊息推送的時候,比如移動偵測,布防什麼的,開始只推送出去的是中文的,最後需要國際化,使用的就是下面的方法
參考官方文檔
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW21
{ "aps" : { "alert" : { "loc-key" : "GAME_PLAY_REQUEST_FORMAT", "loc-args" : [ "Jenna", "Frank"] }, "sound" : "chime" }, "acme" : "foo"}
loc-key 用戶端設定一個多語言的字典,推送到達,系統自動顯示不用的語言,沒有的話就是原始值。
如果alert裡面什麼都不寫,ios裝置是不會顯示的。
4) git 上的
參考地址 https://github.com/hengyunabc/zpush