自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

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

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

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

3.在iPhone Provisioning Portal > Certificates中請求一個證書(點擊Request Certificate,上傳CertificateSigningRequest.certSigningRequest).

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

5.在iPhone Provisioning Portal > Provisioning 中,新建一個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步生成的證書請求.

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

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

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

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

12.運行如下命令:

  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.新建一個View-based Application項目,在$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.項目設(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ā)用機,編譯并運行后會在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ù)器 實例操作的內(nèi)容介紹完了,希望本文對你有幫助。

責(zé)任編輯:zhaolei 來源: 互聯(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ù)器

2018-11-12 11:09:24

2021-09-10 10:07:17

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

2011-07-18 13:37:53

2009-12-10 17:20:00

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

2010-08-05 13:56:06

路由器配置

2011-09-07 10:44:36

DHCP服務(wù)器配置

2010-08-26 11:01:05

DHCP服務(wù)器

2012-09-19 09:47:58

PHPWeb服務(wù)器

2010-08-29 20:53:03

DHCP服務(wù)器

2015-08-25 15:34:51

2010-05-25 09:32:04

搭建SVN服務(wù)器

2016-08-10 16:28:00

WebURLHTTP
點贊
收藏

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