麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

iOS開發之遠程推送

2019-11-14 19:52:42
字體:
來源:轉載
供稿:網友

  說到遠程推送,應該用的也挺多的,今天就基于SEA的云推送服務,做一個推送的小demo,來了解一下iOS中的遠程推送是怎么一回事兒,首先你得有蘋果的開發者賬號,好咸蛋也差不多了,主要內容走起。

  一、準備階段

    1.在蘋果開發官網上申請推送證書之前需要一個名字叫做certSigningRequest文件。該文件在MAC系統中生成,用于在Apple網站上申請推送證書文件,下面是利用鑰匙串生成該文件的步驟:

      (1).打開Mac下的鑰匙串-》鑰匙串訪問-》證書助理-》從證書頒發機構請求證書,如下圖所示:

 

      (2).經過上一步會出現下面的對話框,郵箱和名稱隨便填寫,然后選擇保存到磁盤,就可以在本地生成一個CertificateSigningRequest.certSigningRequest文件。如下圖:

 

    2.去蘋果開發者的網站上申請推送證書,步驟如下:

      (1)、用開發者賬號登陸后,進入Member Center,入下圖所示:

 

      (2)、進入member Center后點擊下面截圖的鏈接:

      (3)、注冊一個支持推送的AppId,在identifiers下面的App IDs選項中點擊添加按鈕,添加一個新的AppIDs,入下圖:

      (4)、填寫你的AppId的名字

      (5)、綁定你應用的Bundle ID

 

      (6)、選中Push Notifications,使本AppID支持消息推送:

 

 

    3、用上面的AppID申請推送證書

     (1)、點擊證書,選中開發模式,然后單選推送服務

 

      (2)、選中我們剛才創建的AppID,如下:

      (3)、上傳我們剛才在本地用鑰匙串創建的文件:

      (4)、接下來就可以下載并使用我們的推送證書了

    4、用我們的AppID創建一個PRovisioning Profiles文件,如下:

 

    5.由上面的證書,生成php用的pem文件過程如下:

      (1).由鑰匙串打開上面我們生成的CSR文件,單擊右鍵導出p12文件,如下圖:

      (2).設置訪問密碼:

      (3)、在終端下切換到存有剛才我們導出的p12文件夾下,進行命令行生成pem文件,命令行如下,合并的時候會讓輸入密碼,密碼就是我們上面設置的密碼:

1 openssl pkcs12 -clcerts -nokeys -out a.pem -in aps_test_cer.p122 openssl pkcs12 -nocerts -out b.pem -in aps_test_key.p123 cat a.pem b.pem > end.pem

 

    6、將生成的end.pem文件上傳到SAE上的云推送服務上即可,我們在SAE上可以通過文件的id進行訪問:

    

  二、服務器端代碼編寫:

    SAE上云推送所用到的PHP代碼如下:

 1 <?php 2  3 $cert_id =你的證書序號; 4 $device_token = 你的deviceToken; 5 $message = "hello world"; 6  7 //這個是簡單的例子,更復雜的消息格式請查看蘋果官方文檔 8 $body = array( 9     'aps' => array( 'alert' => $message)10 );11 $apns = new SaeAPNS();12 //push消息到SAE推送服務器13 $result = $apns->push( $cert_id , $body , $device_token );14 15 if( $result && is_array($result) ){16     echo '發送成功';17     var_dump( $result );18 } else {19     echo '發送失敗';20     var_dump($apns->errno(), $apns->errmsg());21 }22 23 //查看消息發送的匯總信息,返回值包括當天發送成功的消息數,以及因各類原因發送失敗的消息數。24 $result = $apns->getInfo($cert_id);25 if ($result === false) {26     echo "getInfo失敗";27     var_dump($apns->errno(), $apns->errmsg());28 } else {29     echo "getInfo成功";30     var_dump($result);31 }32 33 ?>

 

  三、客戶端代碼如下:

    1.在Appdelegate中注冊推送:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    // Override point for customization after application launch.    //注冊遠程通知    [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];    [application registerForRemoteNotifications];    return YES;}

  

    2.獲取設備令牌的回調方法

1 //注冊遠程推送后獲取設備令牌2 3 -(void) application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken4 {5     6     NSLog(@"%@",deviceToken);7 }

 

    3.注冊錯誤回調的方法:

-(void) application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{    NSLog(@"%@",[error localizedDescription]);}

 

    4.在Build Settings中的Code Signing中中我們的推送證書和描述文件

  到這兒,調用服務器上的php文件就可以給我們的設備發送通知了。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级黄色免费观看 | 成人一级免费视频 | 亚洲嫩草av | 久久综合给合久久狠狠狠97色69 | 国产精品一区在线免费观看 | 黄色网址在线免费播放 | 欧美色大成网站www永久男同 | 91一区二区三区久久久久国产乱 | 久久久久久久久亚洲精品 | 国产精品久久久久久久久久久久久久久久 | www日韩大片 | 国产精品自拍99 | 久久艹艹艹 | 神马顶级推理片免费看 | a级高清免费毛片av在线 | 成人nv在线观看 | 狼伊千合综网中文 | 亚洲午夜在线观看 | 日韩av成人| 国产精品99久久99久久久二 | 久久影院在线观看 | 激情视频日韩 | 成人羞羞在线观看网站 | 国产成人精品自拍视频 | 精品国产一区二区三区久久久蜜月 | 国产一区二区在线观看视频 | 色综合网在线观看 | 久久成人在线观看 | www久久综合| 久久亚洲视频网 | 国产精品午夜未成人免费观看 | 久久久婷婷一区二区三区不卡 | 最近日本电影hd免费观看 | 九九视频精品在线 | 91精品国产一区二区三区动漫 | 精品亚洲va在线va天堂资源站 | 法国极品成人h版 | 中文字幕网在线 | 久久亚洲精品11p | 久久久久久久免费视频 | 国产亚洲精品美女久久久 |