偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iPhone 搭建PHP版Push服務(wù)器 實(shí)例操作

移動(dòng)開發(fā) iOS
本文介紹的是iPhone 搭建PHP版Push服務(wù)器 實(shí)例操作,很詳細(xì)的操作步驟,我們先來(lái)看內(nèi)容。

iPhone 搭建PHPPush服務(wù)器 實(shí)例操作是本文介紹的內(nèi)容。在應(yīng)用里加入 Push 功能對(duì)于用戶及時(shí)獲取信息是非常有幫助的,以前介紹過(guò) iPhone Push (推送通知)功能原理淺析,里面提到要為自己的 App 添加推送功能,開發(fā)者先要搭建一個(gè)推送服務(wù)器。下面就介紹一個(gè)為 iPhone 應(yīng)用搭建 php push 服務(wù)器的流程。

0.在Mac OS X機(jī)器上安裝好XCode, 連接一臺(tái)正常的iPhone, 保持平和的心態(tài)

APP 開發(fā)基礎(chǔ)設(shè)置

1.在iPhone Provisioning Portal中建立好APP ID和Device.

2. 在Keychain Access.app中生成證書請(qǐng)求CertificateSigningRequest.certSigningRequest(菜單 > Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority...).

3.在iPhone Provisioning Portal > Certificates中請(qǐng)求一個(gè)證書(點(diǎn)擊Request Certificate,上傳CertificateSigningRequest.certSigningRequest).

4.請(qǐng)求完成后,將證書文件(developer_identity.cer)下載,雙擊導(dǎo)入到Key Chain中.

5.在iPhone Provisioning Portal > Provisioning 中,新建一個(gè)Profile, 選擇指定的APP ID和 Devices后生成.

6.將剛剛生成的Profile下載為*_profile.mobileprovision, 雙擊該文件, 將profile加載到iPhone中.

Push Notification service設(shè)置

7.在iPhone Provisioning Portal > App IDs,選擇需要Push服務(wù)的App ID, 進(jìn)入Configure.

8.確認(rèn) Enable for Apple Push Notification service ,配置 Development Push SSL Certificate, 上傳第2步生成的證書請(qǐng)求.

9.下載生成的aps_developer_identity.cer, 完成Push服務(wù)配置.

10.雙擊aps_developer_identity.cer,保存到Key Chain.

生成php Push Notification sender需要的證書文件

11.在Keychain Access.app里選定這個(gè)新證書(Apple Development Push Services*),導(dǎo)出到桌面,保存為Certificates.p12.

12.運(yùn)行如下命令:

  1. openssl pkcs12 -clcerts -nokeys -out cert.pem -in Certificates.p12  
  2. openssl pkcs12 -nocerts -out key.pem -in Certificates.p12  
  3. openssl rsa -in key.pem -out key.unencrypted.pem  
  4. cat cert.pem key.unencrypted.pem > ck.pem 

獲得php Push Notification sender所需的設(shè)備令牌:

13.新建一個(gè)View-based Application項(xiàng)目,在$PROJECT_NAMEAppDelegate.m中:

a.粘貼如下代碼:

  1.  - (void)applicationDidFinishLaunching:(UIApplication *)app {  
  2.      // other setup tasks here….  
  3.     [window addSubview:viewController.view];  
  4.      [self alertNotice:@"" withMSG:@"Initiating Remote Noticationss Are Active" cancleButtonTitle:@"Ok" otherButtonTitle:@""];  
  5.     [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
  6. (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound)];  
  7.  }  
  8.  - (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {  
  9.      //NSLog(@"devToken=%@",deviceToken);  
  10.      [self alertNotice:@"" withMSG:[NSString stringWithFormat:@"devToken=%@",deviceToken] cancleButtonTitle:@"Ok" otherButtonTitle:@""];  
  11.  }  
  12.  - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {  
  13.     NSLog(@"Error in registration. Error: %@", err);  
  14.      [self alertNotice:@"" withMSG:[NSString stringWithFormat:@"Error in registration. Error: %@", err]
  15.  cancleButtonTitle:@"Ok" otherButtonTitle:@""];  
  16.  }  
  17. . -(void)alertNotice:(NSString *)title withMSG:(NSString *)msg cancleButtonTitle:(NSString *)cancleTitle 
  18. otherButtonTitle:(NSString *)otherTitle{  
  19.      UIAlertView *alert;  
  20.     if([otherTitle isEqualToString:@""])  
  21.          alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:self cancelButtonTitle:cancleTitle otherButtonTitles:nil,nil];  
  22.      else  
  23.          alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:self cancelButtonTitle:cancleTitle 
  24. otherButtonTitles:otherTitle,nil];  
  25.      [alert show];  
  26.      [alert release];  
  27.  } 

b.在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 方法中增加

  1. [self alertNotice:@"" withMSG:@"Initiating Remote Noticationss Are Active" cancleButtonTitle:@"Ok" otherButtonTitle:@""];  
  2. [[UIApplication sharedApplication] registerForRemoteNotificationTypes:  
  3.  
  4.        (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound)]; 

14.項(xiàng)目設(shè)置

a.Targets > $APP_NAME > context menu > Properties > Identifier

修改

  1. identifier  
  2.  為  
  3. App ID  
  4. b.Targets > $APP_NAME > context menu > Build > Code Signing > Code Signing Identifier > Any iPhone OS Device 

指定 iPhone Developer 為開發(fā)用機(jī),編譯并運(yùn)行后會(huì)在iPhone上顯示設(shè)備令牌

php Push Notification sender代碼如下:

  1. <?php 
  2. deviceToken = "設(shè)備令牌";   
  3. $body = array("aps" => array("alert" => 'message', "badge" => 1, "sound" => 'received5.caf'));  
  4. $ctx = stream_context_create();  
  5. stream_context_set_option($ctx, "ssl", "local_cert", "ck.pem");   
  6. $fp = stream_socket_client("ssl://gateway.sandbox.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);  
  7. if (!$fp) {  
  8.     print "Failed to connect $err $errstrn";  
  9.     return;  
  10. }  
  11. print "Connection OK\n";  
  12. payload = json_encode($body);  
  13. $msg = chr(0) . pack("n",32) . pack("H*", $deviceToken) . pack("n",strlen($payload)) . $payload;  
  14. rint "sending message :" . $payload . "\n";  
  15. fwrite($fp, $msg);  
  16. fclose($fp);  
  17. ?> 

小結(jié):iPhone 搭建PHPPush服務(wù)器 實(shí)例操作的內(nèi)容介紹完了,希望本文對(duì)你有幫助。

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-26 16:43:59

iPhone Web 服務(wù)器

2011-07-27 14:37:33

iPhone Push Notif 服務(wù)器

2012-09-21 10:36:54

PHPPHP搭建Web

2010-05-27 16:41:38

MySQL服務(wù)器

2011-04-22 10:36:09

Server Push推送技術(shù)

2016-10-13 15:57:28

nginxphpwindows

2010-10-19 09:35:08

Ubuntu 10.1云環(huán)境

2014-08-06 11:25:00

LinuxSVN服務(wù)器

2021-09-10 10:07:17

Nginx虛擬主機(jī)服務(wù)器

2011-07-18 13:37:53

2018-11-12 11:09:24

2011-09-07 10:44:36

DHCP服務(wù)器配置

2010-08-26 11:01:05

DHCP服務(wù)器

2009-12-10 17:20:00

PHP服務(wù)器架設(shè)

2010-08-05 13:56:06

路由器配置

2012-09-19 09:47:58

PHPWeb服務(wù)器

2010-08-29 20:53:03

DHCP服務(wù)器

2016-10-11 12:45:50

PythonWeb服務(wù)器

2009-11-30 11:33:50

sendmail服務(wù)器

2011-02-23 15:32:39

vsftpd
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)