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

首頁 > 系統 > iOS > 正文

iOS開發之(APNS)遠程推送實現代碼 附證書與真機調試

2020-07-26 03:13:01
字體:
來源:轉載
供稿:網友

遠程推送通知

什么是遠程推送通知

顧名思義,就是從遠程服務器推送給客戶端的通知(需要聯網)遠程推送服務,又稱為APNs(ApplePush Notification Services)

為什么需要遠程推送通知傳統獲取數據的局限性只要用戶關閉了app,就無法跟app的服務器溝通,無法從服務器上獲得最新的數據內容遠程推送通知可以解決以上問題不管用戶打開還是關閉app,只要聯網了,都能接收到服務器推送的遠程通知遠程推送通知使用須知所有的蘋果設備,在聯網狀態下,都會與蘋果的服務器建立長連接什么是長連接只要聯網了,就一直建立連接長連接的作用時間校準系統升級查找我的iPhone.....長連接的好處數據傳輸速度快數據保持最新狀態推送原理

Provider就是我們公司的服務器,經過蘋果的APNs服務器找到我們的設備,給我們設備上的客戶端應用推送消息。那APNs服務器是如何找到我們的設備和設備上的應用呢,答案就是DeviceToken,DeviceToken需要配置推送證書才可以獲得,推送證書需要知道我們的APPID(應用的BundleID,應用唯一標識)和UDID(設備唯一標識),還有自己服務器的UDID,我們先來打一個推送證書,登錄開發者中心,點擊證書模塊

點擊iOS Apps的證書

進入這樣的界面

點擊App IDs,然后點右上角的加號

箭頭所指為應用ID描述,我們假設寫了一個很牛逼的應用,ExcitedApp,接下來我們填入App ID,注意這里的AppID是固定的,不能有星號

接下來我們添加App所需要的服務,然后點擊Continue

一直點擊下一步,完成,在App IDs 列表里面找到我們的ExcitedApp,我們看到

發現Push服務是黃色警告,這時點擊Edit,找到推送模塊,我們需要配置推送證書了,點擊紅色箭頭所指的位置

我們需要一個CSR文件,CSR是一個簽名請求文件,意思就是讓我們的MAC具有調試推送的權限,點擊繼續

點擊了繼續我們看到

然后我們打開Mac上的鑰匙串,從證書頒發機構請求證書

前兩個隨便寫,最后選擇存到磁盤

完成之后,接下來我們就可以添加CSR文件了

添加完,選擇生成

證書配好了,下載下來

配好了!

順帶著我們把發布的證書也給配了,步驟都一樣

打開我們剛剛下載的證書,添加到鑰匙串中

終于能開始整我們的項目了,快哭了都

不要忘記修改bundle id 這里還要搞一個真機調試的證書才可以

真機調試的東西這里不累述,搞了這么多東西,我們終于可以拿到DeviceToken了

在AppDelegate.m中注冊推送

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {  UIUserNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;  UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:myTypes categories:nil];  [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; }else {  UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound;  [[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes]; }   return YES;}
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{ NSLog(@"%@",deviceToken);}
//ios8 另外增加以下方法#ifdef __IPHONE_8_0- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings{ [application registerForRemoteNotifications];}#endif

DeviceToken處理流程

接下來我們用SmartPush來測試一下我們的推送:https://github.com/shaojiankui/SmartPush

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江安县| 刚察县| 无为县| 玉溪市| 大竹县| 克东县| 耒阳市| 青田县| 朝阳县| 阿拉尔市| 黄大仙区| 鹤山市| 安图县| 桃园市| 湘阴县| 武清区| 中山市| 剑川县| 图们市| 荣昌县| 湟中县| 遵义县| 遵义市| 井冈山市| 茂名市| 固阳县| 囊谦县| 古丈县| 吉林省| 徐闻县| 城市| 启东市| 正定县| 含山县| 韶山市| 凭祥市| 米易县| 吴堡县| 黄平县| 古田县| 呼和浩特市|