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代码如下:
<?php
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服务器 实例操作的内容介绍完
分享到:
相关推荐
本实例主要关注如何在iPhone应用中实现FTP功能,包括文件的上传和下载。以下是关于这个主题的详细知识讲解。 首先,理解FTP的基本概念。FTP是一种网络协议,允许用户在Internet上从一台计算机向另一台计算机传输...
搭建iPhone开发环境是iOS应用开发的第一步,主要涉及到在特定的操作系统环境下安装必要的开发工具。由于iPhone应用只能在苹果公司的Mac OS X系统上开发,因此,你需要准备一个运行Mac OS X的环境。以下是详细的步骤...
《iPhone游戏编程实例》这本书是针对想要开发iPhone游戏的程序员们的一份宝贵资源。它深入浅出地介绍了如何利用Apple的iOS SDK(Software Development Kit)和Objective-C编程语言来创建吸引人的、交互性强的iPhone...
群晖搭建局域网内iTunes 影音服务器,使得局域网内家庭共享影音资源。
iPhone用户界面设计典型实例. 北京市:人民邮电出版社, 2011.06. 【内容提要】 本书介绍用户体验和好的外观的应用程序,以及iPhone用户界面设计的秘密。主要包括以下内容:优化使用有限的屏幕面积,让 屏幕上的元素...
iPhone的Push(推送通知)功能是iOS设备上的一项重要特性,它允许应用程序在后台向用户发送提醒,即使应用并未在运行。这一功能依赖于Apple Push Notification Service (APNS) —— 苹果提供的推送服务。下面是Push...
### iPhone开发中Push通知实现详解 #### 一、引言 在移动应用开发领域,Push通知(推送通知)是一项非常重要的功能,它可以帮助开发者更好地与用户互动,提高应用的活跃度和留存率。本文将详细介绍如何在iPhone...
VSFTPD将iPhone变成FTP服务器和U盘 VSFTPD是一款功能强大且免费的软件,可以将iPhone变成一个FTP服务器和U盘,使其可以随时随地地存储和共享文件。 VSFTPD的主要功能 VSFTPD可以将iPhone变成一个FTP服务器,使其...
本资源提供的"iPhone push功能源码"包括了"pushMe"服务器端和"pushTest"客户端两部分,帮助开发者深入理解并实践如何在iOS应用中实现这一功能。 首先,我们来详细了解一下推送通知的工作原理。苹果的推送通知服务...
本文将详细介绍如何搭建iOS开发环境,并提供一些简单的开发实例来帮助初学者快速入门。 ### iOS开发环境搭建 #### 注册Apple ID 为了下载开发所需的软件和工具,首先需要注册一个Apple ID。Apple ID是Apple服务的...
iPhone上的TXT阅读器实例是一个很好的学习资源,可以帮助开发者了解如何在iOS环境中实现这样的功能。下面我们将深入探讨相关的知识点。 首先,我们需要知道iOS应用开发主要使用的是Swift或Objective-C编程语言,而...
"iPhone推送实例"着重讲解了如何在iPhone应用中实现和处理远程推送通知。下面将详细讨论这个主题。 一、Apple Push Notification Service (APNs) Apple Push Notification Service 是苹果公司提供的服务,允许...
在iOS平台上,推送服务(Push Notification Service,简称PNP)是一项关键功能,它允许应用程序在未运行时接收来自服务器的通知。"iPhone PushTest"显然关注的是如何在iPhone上测试和实现这一服务。以下是对这个主题...
本实例“iPhone 本地通知实例”旨在展示如何在iPhone上实现这一功能。下面我们将深入探讨本地通知的工作原理、创建过程以及相关的API。 1. **本地通知的基本概念**: - 本地通知是由应用程序本身安排的,不同于...
《iPhone游戏编程实例》这本书是iOS游戏开发领域的一份宝贵资源,主要面向对游戏开发感兴趣的程序员,特别是那些希望进入iPhone游戏开发领域的初学者。通过实际的项目案例,它提供了深入理解游戏开发流程、掌握...
### 搭建手机服务器——以iPhone为例使用Mongoose实现 #### 一、引言 随着移动互联网技术的发展,智能手机不仅成为了人们日常生活中不可或缺的一部分,更因其强大的计算能力和丰富的功能而被广泛应用于各种场景。...
"Iphone中的SQLite 可运行的实例"是一个很好的起点,帮助开发者理解如何在iPhone应用程序中集成和操作SQLite数据库。这个实例提供了完整的代码和步骤,使得初学者能够快速上手。 SQLite在iOS中的应用主要涉及以下几...
本教程将基于“iphone notification 使用实例”这一主题,详细介绍如何在iPhone上实现通知功能。 首先,我们要了解iOS中的通知类型:本地通知(Local Notification)和远程通知(Remote Notification,通常与Apple ...
Iphone 实例编程 有注释 Iphone 实例编程 有注释
标题 "iPhone的Push实现.NET代码" 涉及到的是苹果设备(iPhone)上的远程通知服务,即Apple Push Notification service (APNS) 的.NET后端实现。这一技术允许应用程序在后台接收来自服务器的通知,即使应用没有运行...