Maison développement back-end tutoriel 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加一条信息”一个个的发;
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

iPhone 16 Pro et iPhone 16 Pro Max officiels avec de nouveaux appareils photo, un SoC A18 Pro et des écrans plus grands iPhone 16 Pro et iPhone 16 Pro Max officiels avec de nouveaux appareils photo, un SoC A18 Pro et des écrans plus grands Sep 10, 2024 am 06:50 AM

Apple a enfin dévoilé ses nouveaux modèles d'iPhone haut de gamme. L'iPhone 16 Pro et l'iPhone 16 Pro Max sont désormais dotés d'écrans plus grands que leurs homologues de dernière génération (6,3 pouces sur le Pro, 6,9 pouces sur le Pro Max). Ils obtiennent un Apple A1 amélioré

Le verrouillage d'activation des pièces d'iPhone repéré dans iOS 18 RC — pourrait être le dernier coup porté par Apple au droit de réparation vendu sous couvert de protection des utilisateurs Le verrouillage d'activation des pièces d'iPhone repéré dans iOS 18 RC — pourrait être le dernier coup porté par Apple au droit de réparation vendu sous couvert de protection des utilisateurs Sep 14, 2024 am 06:29 AM

Plus tôt cette année, Apple a annoncé qu'elle étendrait sa fonctionnalité de verrouillage d'activation aux composants de l'iPhone. Cela relie efficacement les composants individuels de l'iPhone, tels que la batterie, l'écran, l'assemblage FaceID et le matériel de l'appareil photo, à un compte iCloud.

Le verrouillage d'activation des pièces d'iPhone pourrait être le dernier coup porté par Apple au droit de réparation vendu sous couvert de protection de l'utilisateur Le verrouillage d'activation des pièces d'iPhone pourrait être le dernier coup porté par Apple au droit de réparation vendu sous couvert de protection de l'utilisateur Sep 13, 2024 pm 06:17 PM

Plus tôt cette année, Apple a annoncé qu'elle étendrait sa fonctionnalité de verrouillage d'activation aux composants de l'iPhone. Cela relie efficacement les composants individuels de l'iPhone, tels que la batterie, l'écran, l'assemblage FaceID et le matériel de l'appareil photo, à un compte iCloud.

Plusieurs utilisateurs d'iPhone 16 Pro signalent des problèmes de gel de l'écran tactile, éventuellement liés à la sensibilité au rejet de la paume Plusieurs utilisateurs d'iPhone 16 Pro signalent des problèmes de gel de l'écran tactile, éventuellement liés à la sensibilité au rejet de la paume Sep 23, 2024 pm 06:18 PM

Si vous avez déjà mis la main sur un appareil de la gamme iPhone 16 d'Apple, plus précisément le 16 Pro/Pro Max, il est probable que vous ayez récemment rencontré un problème avec l'écran tactile. Le bon côté des choses, c'est que vous n'êtes pas seul – rapporte

Gate.io Trading Platform Office Application Téléchargement et Adresse d'installation Gate.io Trading Platform Office Application Téléchargement et Adresse d'installation Feb 13, 2025 pm 07:33 PM

Cet article détaille les étapes pour enregistrer et télécharger la dernière application sur le site officiel de Gate.io. Premièrement, le processus d'enregistrement est introduit, notamment le remplissage des informations d'enregistrement, la vérification du numéro de messagerie électronique / téléphone portable et la réalisation de l'enregistrement. Deuxièmement, il explique comment télécharger l'application gate.io sur les appareils iOS et les appareils Android. Enfin, les conseils de sécurité sont soulignés, tels que la vérification de l'authenticité du site officiel, l'activation de la vérification en deux étapes et l'alerte aux risques de phishing pour assurer la sécurité des comptes et des actifs d'utilisateurs.

Beats ajoute des coques de téléphone à sa gamme : dévoile une coque MagSafe pour la série iPhone 16 Beats ajoute des coques de téléphone à sa gamme : dévoile une coque MagSafe pour la série iPhone 16 Sep 11, 2024 pm 03:33 PM

Beats est connu pour lancer des produits audio tels que des haut-parleurs et des écouteurs Bluetooth, mais dans ce qui peut être décrit comme une surprise, la société appartenant à Apple s'est lancée dans la fabrication d'étuis pour téléphones, en commençant par la série iPhone 16. L'iPhone Beats

Comment résoudre le problème de la 'Erreur du signe de la clé de tableau non définie' lors de l'appel d'alipay easysdk à l'aide de PHP? Comment résoudre le problème de la 'Erreur du signe de la clé de tableau non définie' lors de l'appel d'alipay easysdk à l'aide de PHP? Mar 31, 2025 pm 11:51 PM

Description du problème Lors de l'appel d'Alipay Easysdk en utilisant PHP, après avoir rempli les paramètres en fonction du code officiel, un message d'erreur a été signalé pendant l'opération: "UNDEFINED ...

ANBI App Office Télécharger V2.96.2 Dernière version Installation de la version Android officielle de l'ANBI ANBI App Office Télécharger V2.96.2 Dernière version Installation de la version Android officielle de l'ANBI Mar 04, 2025 pm 01:06 PM

Les étapes d'installation officielles de l'application Binance: Android doit visiter le site officiel pour trouver le lien de téléchargement, choisissez la version Android pour télécharger et installer; iOS recherche "Binance" sur l'App Store. Tous devraient prêter attention à l'accord par le biais des canaux officiels.

See all articles