首頁 後端開發 php教程 iPhone 筹建PHP版Push服务器 实例操作

iPhone 筹建PHP版Push服务器 实例操作

Jun 13, 2016 pm 01:12 PM
iphone nbsp push

iPhone 搭建PHP版Push服务器 实例操作
iPhone 搭建PHP版Push服务器 实例操作是本文介绍的内容。在应用里加入 Push 功能对于用户及时获取信息是非常有帮助的,以前介绍过 iPhone 的 Push (推送通知)功能原理浅析,里面提到要为自己的 App 添加推送功能,开发者先要搭建一个推送服务器。下面就介绍一个为 iPhone 应用搭建 php 版 push 服务器的流程。

0.在Mac OS X机器上安装好XCode, 连接一台正常的iPhone, 保持平和的心态

APP 开发基础设置

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)下载,双击导入到Key Chain中.

5.在iPhone Provisioning Portal > Provisioning 中,新建一个Profile, 选择指定的APP ID和 Devices后生成.

6.将刚刚生成的Profile下载为*_profile.mobileprovision, 双击该文件, 将profile加载到iPhone中.

Push Notification service设置

7.在iPhone Provisioning Portal > App IDs,选择需要Push服务的App ID, 进入Configure.

8.确认 Enable for Apple Push Notification service ,配置 Development Push SSL Certificate, 上传第2步生成的证书请求.

9.下载生成的aps_developer_identity.cer, 完成Push服务配置.

10.双击aps_developer_identity.cer,保存到Key Chain.

生成php Push Notification sender需要的证书文件

11.在Keychain Access.app里选定这个新证书(Apple Development Push Services*),导出到桌面,保存为Certificates.p12.

12.运行如下命令:

openssl pkcs12 -clcerts -nokeys -out cert.pem -in Certificates.p12 
openssl pkcs12 -nocerts -out key.pem -in Certificates.p12 
openssl rsa -in key.pem -out key.unencrypted.pem 
cat cert.pem key.unencrypted.pem > ck.pem 获得php Push Notification sender所需的设备令牌:

13.新建一个View-based Application项目,在$PROJECT_NAMEAppDelegate.m中:

a.粘贴如下代码:
- (void)applicationDidFinishLaunching:(UIApplication *)app {
       // other setup tasks here….
      [window addSubview:viewController.view];
       [self alertNotice:@"" withMSG:@"Initiating Remote Noticationss Are Active"

cancleButtonTitle:@"Ok" otherButtonTitle:@""];
      [[UIApplication sharedApplication] registerForRemoteNotificationTypes:            

(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge |

UIRemoteNotificationTypeSound)];
   }
   - (void)application:(UIApplication *)app

didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
       //NSLog(@"devToken=%@",deviceToken);
       [self alertNotice:@"" withMSG:[NSString stringWithFormat:@"devToken=%@",deviceToken]

cancleButtonTitle:@"Ok" otherButtonTitle:@""];
   }
   - (void)application:(UIApplication *)app

didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
      NSLog(@"Error in registration. Error: %@", err);
       [self alertNotice:@"" withMSG:[NSString stringWithFormat:@"Error in registration.

Error: %@", err]                         cancleButtonTitle:@"Ok" otherButtonTitle:@""];
   }  .
-(void)alertNotice:(NSString *)title withMSG:(NSString *)msg cancleButtonTitle:(NSString

*)cancleTitle                         otherButtonTitle:(NSString *)otherTitle{           

UIAlertView *alert;
     if([otherTitle isEqualToString:@""])
          alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:self

cancelButtonTitle:cancleTitle otherButtonTitles:nil,nil];
      else
           alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:self

cancelButtonTitle:cancleTitle               otherButtonTitles:otherTitle,nil];
       [alert show];
       [alert release];
   }
b.在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 方法中增加
[self alertNotice:@"" withMSG:@"Initiating Remote Noticationss Are Active" cancleButtonTitle:@"Ok" otherButtonTitle:@""];
  [[UIApplication sharedApplication] registerForRemoteNotificationTypes:          (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound)];

14.项目设置

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

修改
identifier
   为
  App ID
  b.Targets > $APP_NAME > context menu > Build > Code Signing > Code Signing Identifier > Any iPhone OS Device
指定 iPhone Developer 为开发用机,编译并运行后会在iPhone上显示设备令牌

php Push Notification sender代码如下:

deviceToken = "设备令牌";
$body = array("aps" => array
("alert" => 'message', "badge" => 1, "sound" => 'received5.caf'));
$ctx = stream_context_create();
stream_context_set_option($ctx, "ssl", "local_cert", "ck.pem");
$fp = stream_socket_client
("ssl://gateway.sandbox.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 
if (!$fp) {
print "Failed to connect $err $errstrn";
return;
}
print "Connection OK\n";
payload = json_encode($body);
$msg = chr(0) . pack("n",32) . pack("H*", $deviceToken) . pack("n",strlen($payload)) . $payload;
rint "sending message :" . $payload . "\n";
fwrite($fp, $msg);  fclose($fp);
?>
iPhone 搭建PHP版Push服务器 实例操作的内容介绍完

1 楼 CJSen 2011-12-15  
请问iphone push推送中,如果我想将同一条信息发给很多个设备,有没有接口或方法说:我从服务器“将要发的所有设备ID和一条信息”发到apns上,苹果服务器自动帮我为每一个设备发信息,而不用我自己在服务器上“一个设备ID加一条信息”一个个的发;
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

iPhone 16 Pro 和 iPhone 16 Pro Max 正式發布,配備新相機、A18 Pro SoC 和更大的螢幕 iPhone 16 Pro 和 iPhone 16 Pro Max 正式發布,配備新相機、A18 Pro SoC 和更大的螢幕 Sep 10, 2024 am 06:50 AM

蘋果終於揭開了其新款高階 iPhone 機型的面紗。與上一代產品相比,iPhone 16 Pro 和 iPhone 16 Pro Max 現在配備了更大的螢幕(Pro 為 6.3 英寸,Pro Max 為 6.9 英寸)。他們獲得了增強版 Apple A1

iOS 18 RC 中發現 iPhone 零件啟動鎖——可能是蘋果對以用戶保護為幌子銷售維修權的最新打擊 iOS 18 RC 中發現 iPhone 零件啟動鎖——可能是蘋果對以用戶保護為幌子銷售維修權的最新打擊 Sep 14, 2024 am 06:29 AM

今年早些時候,蘋果宣布將把啟動鎖定功能擴展到 iPhone 組件。這有效地將各個 iPhone 組件(例如電池、顯示器、FaceID 組件和相機硬體)連結到 iCloud 帳戶,

iPhone零件啟動鎖可能是蘋果對以用戶保護為幌子銷售維修權的最新打擊 iPhone零件啟動鎖可能是蘋果對以用戶保護為幌子銷售維修權的最新打擊 Sep 13, 2024 pm 06:17 PM

今年早些時候,蘋果宣布將把啟動鎖定功能擴展到 iPhone 組件。這有效地將各個 iPhone 組件(例如電池、顯示器、FaceID 組件和相機硬體)連結到 iCloud 帳戶,

多名 iPhone 16 Pro 使用者報告觸控螢幕凍結問題,可能與防手掌誤觸敏感度有關 多名 iPhone 16 Pro 使用者報告觸控螢幕凍結問題,可能與防手掌誤觸敏感度有關 Sep 23, 2024 pm 06:18 PM

如果您已經拿到了 Apple iPhone 16 系列的裝置(更具體地說是 16 Pro/Pro Max),那麼您最近很可能遇到某種觸控螢幕問題。一線希望是你並不孤單——報告

Gate.io交易平台官方App下載安裝地址 Gate.io交易平台官方App下載安裝地址 Feb 13, 2025 pm 07:33 PM

本文詳細介紹了在 Gate.io 官網註冊並下載最新 App 的步驟。首先介紹了註冊流程,包括填寫註冊信息、驗證郵箱/手機號碼,以及完成註冊。其次講解了下載 iOS 設備和 Android 設備上 Gate.io App 的方法。最後強調了安全提示,如驗證官網真實性、啟用兩步驗證以及警惕釣魚風險,以確保用戶賬戶和資產安全。

在使用PHP調用支付寶EasySDK時,如何解決'Undefined array key 'sign'”報錯問題? 在使用PHP調用支付寶EasySDK時,如何解決'Undefined array key 'sign'”報錯問題? Mar 31, 2025 pm 11:51 PM

問題介紹在使用PHP調用支付寶EasySDK時,按照官方提供的代碼填入參數後,運行過程中遇到報錯信息“Undefined...

Beats 為其產品陣容增添手機殼:推出適用於 iPhone 16 系列的 MagSafe 手機殼 Beats 為其產品陣容增添手機殼:推出適用於 iPhone 16 系列的 MagSafe 手機殼 Sep 11, 2024 pm 03:33 PM

Beats 以推出藍牙揚聲器和耳機等音訊產品而聞名,但令人驚訝的是,這家蘋果旗下公司從 iPhone 16 系列開始涉足手機殼製造領域。節拍 iPhone

安幣app官方下載v2.96.2最新版安裝  安幣官方安卓版 安幣app官方下載v2.96.2最新版安裝 安幣官方安卓版 Mar 04, 2025 pm 01:06 PM

幣安App官方安裝步驟:安卓需訪官網找下載鏈接,選安卓版下載安裝;iOS在App Store搜“Binance”下載。均要從官方渠道,留意協議。

See all articles