iPhone 筹建PHP版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服务器 实例操作的内容介绍完

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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é

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.

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.

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

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 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

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 ...

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.
