国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

關于iOS的推送服務的點點

2019-11-14 18:39:45
字體:
來源:轉載
供稿:網友

    蘋果推送通知服務(Apple Push Notification Service) 簡稱APNS. 是iOS應用中十分常見的一種交互方式. 

    APNS依托一個或幾個系統常駐進程運作,  接管所有應用的消息推送, 所以可看作是獨立于應用之外, 而且是設備和蘋果服務器之間的通訊, 而非應用的提供商服務器. 

    這和 Android不同, Android更像是傳統桌面電腦系統的做法. 每個需要后臺推送的應用有各自的單獨后臺進程, 才能和各自的服務器通訊, 交換數據. 

    另外其實 Android 也有類似 APNS 的 GCM(Google Cloud Message),屬于開發者可選,非強制.

    所以你大概看出來區別,iOS 的消息推送機制面世之時是一種全新的解決方案(堪稱平臺中的平臺),應用本身不能有常駐的后臺進程,系統的開銷少,內存使用更少,電量也

更少(把更多的運算和資源開銷放在云端,非設備端)。而 Android 的特點,雖然開銷大,優點是更穩定快速,但不明顯。

    APNS的工作原理:

         1. App向設備請求是否允許使用通知服務

         2. 設備會攜帶App名向蘋果的推送通知服務器發送允許接受通知服務的請求

         3. 蘋果推送通知服務器將deviceToken和App名發送給設備

         4. App將deviceToken等信息發送至我們自己的存儲通知內容的服務器

         5. 我們自己的存儲通知內容的服務器將deviceToken和通知內容發送給蘋果推送通知服務器

         6. 蘋果推送通知服務器最后將通知內容按照deviceToken下發到設備

    APNS的使用:

         1. 在https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action中注冊App的id

         2. 在https://developer.apple.com/account/ios/certificate/certificateList.action?type=development中注冊APNS推送證書下載并安裝

         3. 一般的APNS都是在AppDelegate中進行.

            1). 首先要注冊通知服務, 由于iOS8.0之后的推送通知注冊方法改變, 所以要進行設備的系統版本判斷

            // 注冊通知服務

            if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) {

                [[UIapplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |

                                                                                       UIRemoteNotificationTypeSound |

                                                                                       UIRemoteNotificationTypeAlert)];

            } else {

               UIUserNotificationSettings* settings = [UIUserNotificationSettings settingsForTypes:(

                                                                                          UIRemoteNotificationTypeBadge |

                                                                                          UIRemoteNotificationTypeSound |

                                                                                          UIRemoteNotificationTypeAlert) categories:nil];

              [application registerUserNotificationSettings:settings];

              [ application registerForRemoteNotifications];

           }

       4. 注冊成功調用的方法

         - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

       5. 注冊失敗調用的方法

         - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

       6. 接送推送消息的觸發方法

        - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

   另: 推送中經常出現在icon上的角標 [UIApplication sharedApplication].applicationIconBadgeNumber


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台东市| 南平市| 乃东县| 孝昌县| 平塘县| 云林县| 延吉市| 九江市| 普兰店市| 天全县| 武平县| 高要市| 庄河市| 华容县| 若羌县| 黎川县| 普兰县| 唐海县| 鄂尔多斯市| 汝城县| 拉萨市| 鹤庆县| 抚顺市| 蓝田县| 扬中市| 罗山县| 虹口区| 永春县| 郓城县| 崇文区| 鄂州市| 理塘县| 南开区| 潮安县| 昭苏县| 沧州市| 石景山区| 榕江县| 平南县| 安溪县| 元阳县|