久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

iOS開發(fā)之遠(yuǎn)程推送

 沒原創(chuàng)_去搜索 2015-06-30

說到遠(yuǎn)程推送,,應(yīng)該用的也挺多的,,今天就基于SEA的云推送服務(wù),做一個(gè)推送的小demo,來了解一下iOS中的遠(yuǎn)程推送是怎么一回事兒,,首先你得有蘋果的開發(fā)者賬號(hào),,好咸蛋也差不多了,主要內(nèi)容走起,。

  一,、準(zhǔn)備階段

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

      (1).打開Mac下的鑰匙串-》鑰匙串訪問-》證書助理-》從證書頒發(fā)機(jī)構(gòu)請(qǐng)求證書,如下圖所示:

 

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

 

    2.去蘋果開發(fā)者的網(wǎng)站上申請(qǐng)推送證書,,步驟如下:

      (1),、用開發(fā)者賬號(hào)登陸后,進(jìn)入Member Center,入下圖所示:

 

      (2),、進(jìn)入member Center后點(diǎn)擊下面截圖的鏈接:

      (3),、注冊(cè)一個(gè)支持推送的AppId,在identifiers下面的App IDs選項(xiàng)中點(diǎn)擊添加按鈕,添加一個(gè)新的AppIDs,入下圖:

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

      (5),、綁定你應(yīng)用的Bundle ID

 

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

 

 

    3,、用上面的AppID申請(qǐng)推送證書

     (1)、點(diǎn)擊證書,,選中開發(fā)模式,,然后單選推送服務(wù)

 

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

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

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

    4,、用我們的AppID創(chuàng)建一個(gè)Provisioning Profiles文件,,如下:

 

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

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

      (2).設(shè)置訪問密碼:

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

1 openssl pkcs12 -clcerts -nokeys -out a.pem -in aps_test_cer.p12
2 openssl pkcs12 -nocerts -out b.pem -in aps_test_key.p12
3 cat a.pem b.pem > end.pem

 

    6,、將生成的end.pem文件上傳到SAE上的云推送服務(wù)上即可,,我們?cè)赟AE上可以通過文件的id進(jìn)行訪問:

    

  二、服務(wù)器端代碼編寫:

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

復(fù)制代碼
 1 <?php
 2 
 3 $cert_id =你的證書序號(hào);
 4 $device_token = 你的deviceToken;
 5 $message = "hello world";
 6 
 7 //這個(gè)是簡(jiǎn)單的例子,,更復(fù)雜的消息格式請(qǐng)查看蘋果官方文檔
 8 $body = array(
 9     'aps' => array( 'alert' => $message)
10 );
11 $apns = new SaeAPNS();
12 //push消息到SAE推送服務(wù)器
13 $result = $apns->push( $cert_id , $body , $device_token );
14 
15 if( $result && is_array($result) ){
16     echo '發(fā)送成功';
17     var_dump( $result );
18 } else {
19     echo '發(fā)送失敗';
20     var_dump($apns->errno(), $apns->errmsg());
21 }
22 
23 //查看消息發(fā)送的匯總信息,,返回值包括當(dāng)天發(fā)送成功的消息數(shù),以及因各類原因發(fā)送失敗的消息數(shù),。
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 ?>
復(fù)制代碼

 

  三,、客戶端代碼如下:

    1.在Appdelegate中注冊(cè)推送:

復(fù)制代碼
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    //注冊(cè)遠(yuǎn)程通知
    [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
    [application registerForRemoteNotifications];
    return YES;
}
復(fù)制代碼

  

    2.獲取設(shè)備令牌的回調(diào)方法

復(fù)制代碼
1 //注冊(cè)遠(yuǎn)程推送后獲取設(shè)備令牌
2 
3 -(void) application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
4 {
5     
6     NSLog(@"%@",deviceToken);
7 }
復(fù)制代碼

 

    3.注冊(cè)錯(cuò)誤回調(diào)的方法:

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

 

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

  到這兒,調(diào)用服務(wù)器上的php文件就可以給我們的設(shè)備發(fā)送通知了,。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多