Rumah pembangunan bahagian belakang tutorial 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加一条信息”一个个的发;
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

iPhone 16 Pro dan iPhone 16 Pro Max rasmi dengan kamera baharu, A18 Pro SoC dan skrin yang lebih besar iPhone 16 Pro dan iPhone 16 Pro Max rasmi dengan kamera baharu, A18 Pro SoC dan skrin yang lebih besar Sep 10, 2024 am 06:50 AM

Apple akhirnya telah menanggalkan penutup model iPhone mewah baharunya. iPhone 16 Pro dan iPhone 16 Pro Max kini hadir dengan skrin yang lebih besar berbanding dengan model generasi terakhir mereka (6.3-in pada Pro, 6.9-in pada Pro Max). Mereka mendapat Apple A1 yang dipertingkatkan

Kunci Pengaktifan bahagian iPhone dikesan dalam iOS 18 RC — mungkin merupakan pukulan terbaharu Apple ke kanan untuk dibaiki dijual di bawah nama perlindungan pengguna Kunci Pengaktifan bahagian iPhone dikesan dalam iOS 18 RC — mungkin merupakan pukulan terbaharu Apple ke kanan untuk dibaiki dijual di bawah nama perlindungan pengguna Sep 14, 2024 am 06:29 AM

Awal tahun ini, Apple mengumumkan bahawa ia akan mengembangkan ciri Kunci Pengaktifannya kepada komponen iPhone. Ini memautkan komponen iPhone individu secara berkesan, seperti bateri, paparan, pemasangan FaceID dan perkakasan kamera ke akaun iCloud,

Kunci Pengaktifan bahagian iPhone mungkin merupakan pukulan terbaharu Apple ke kanan untuk dibaiki dijual dengan berselindung di bawah perlindungan pengguna Kunci Pengaktifan bahagian iPhone mungkin merupakan pukulan terbaharu Apple ke kanan untuk dibaiki dijual dengan berselindung di bawah perlindungan pengguna Sep 13, 2024 pm 06:17 PM

Awal tahun ini, Apple mengumumkan bahawa ia akan mengembangkan ciri Kunci Pengaktifannya kepada komponen iPhone. Ini memautkan komponen iPhone individu secara berkesan, seperti bateri, paparan, pemasangan FaceID dan perkakasan kamera ke akaun iCloud,

Platform Perdagangan Platform Perdagangan Rasmi dan Alamat Pemasangan Rasmi Platform Perdagangan Platform Perdagangan Rasmi dan Alamat Pemasangan Rasmi Feb 13, 2025 pm 07:33 PM

Artikel ini memperincikan langkah -langkah untuk mendaftar dan memuat turun aplikasi terkini di laman web rasmi Gate.io. Pertama, proses pendaftaran diperkenalkan, termasuk mengisi maklumat pendaftaran, mengesahkan nombor e -mel/telefon bimbit, dan menyelesaikan pendaftaran. Kedua, ia menerangkan cara memuat turun aplikasi Gate.io pada peranti iOS dan peranti Android. Akhirnya, petua keselamatan ditekankan, seperti mengesahkan kesahihan laman web rasmi, membolehkan pengesahan dua langkah, dan berjaga-jaga terhadap risiko phishing untuk memastikan keselamatan akaun pengguna dan aset.

Berbilang pengguna iPhone 16 Pro melaporkan isu pembekuan skrin sentuh, mungkin dikaitkan dengan sensitiviti penolakan tapak tangan Berbilang pengguna iPhone 16 Pro melaporkan isu pembekuan skrin sentuh, mungkin dikaitkan dengan sensitiviti penolakan tapak tangan Sep 23, 2024 pm 06:18 PM

Jika anda sudah mendapatkan peranti daripada barisan iPhone 16 Apple — lebih khusus lagi, 16 Pro/Pro Max — kemungkinan besar anda baru-baru ini menghadapi beberapa jenis isu dengan skrin sentuh. Perkara utama ialah anda tidak bersendirian—laporan

Beats menambah sarung telefon pada barisannya: memperkenalkan sarung MagSafe untuk siri iPhone 16 Beats menambah sarung telefon pada barisannya: memperkenalkan sarung MagSafe untuk siri iPhone 16 Sep 11, 2024 pm 03:33 PM

Beats terkenal dengan pelancaran produk audio seperti pembesar suara Bluetooth dan fon kepala, tetapi dalam apa yang paling boleh digambarkan sebagai kejutan, syarikat milik Apple itu telah bercabang untuk membuat sarung telefon, bermula dengan siri iPhone 16. The Beats iPhone

Anbi App Rasmi Muat turun v2.96.2 Pemasangan versi terkini ANBI Versi Android Rasmi Anbi App Rasmi Muat turun v2.96.2 Pemasangan versi terkini ANBI Versi Android Rasmi Mar 04, 2025 pm 01:06 PM

Langkah Pemasangan Rasmi Binance: Android perlu melawat laman web rasmi untuk mencari pautan muat turun, pilih versi Android untuk memuat turun dan memasang; Semua harus memberi perhatian kepada perjanjian melalui saluran rasmi.

Bagaimana untuk menyelesaikan masalah 'Kunci Array Undefined' Sign ''ralat ketika memanggil Alipay Easysdk menggunakan PHP? Bagaimana untuk menyelesaikan masalah 'Kunci Array Undefined' Sign ''ralat ketika memanggil Alipay Easysdk menggunakan PHP? Mar 31, 2025 pm 11:51 PM

Penerangan Masalah Apabila memanggil Alipay Easysdk menggunakan PHP, selepas mengisi parameter mengikut kod rasmi, mesej ralat dilaporkan semasa operasi: "Undefined ...

See all articles