iOS推送&PHP后台

转载自http://www.iashes.com/2015-11-942.html

iOS远程推送,PHP最后台服务器进行推送。

推送机制:

1,PHP后台把要发送的消息、目的iPhone的标识打包,发给APNS(apple 推送服务器)。

2,APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。

3,iPhone把发来的消息传递给相应的应用程序, 程序收到通知。

流程:

1,首先创建一个对应的APPID (Registering an App ID),这个和自己项目的Bundle Identifier要相符,不然推送会连接出错。对应了之后,选择服务的时候要勾选PUSH这个,标示这个项目要用到推送。

id

push

2,创建开发者的开发证书,证书有开发证书和发布证书,(主要以开发为例,因为开发和发布的证书和配置文件是一样的)。创建的时候注意两点,第一点是选择开发者的推送通知服务,如图:

cer

第二点注意的是要选择自己刚刚创建的有push的那个appid,如图:

id2

 

然后上传自己从电脑里边导出的certSigningRequest文件,最后下载这个证书,双击进行安装。

然后会发现自己电脑钥匙串的证书里边多了一个证书,如图:

A7248EE5-9C47-42EA-806E-BE439F9D3A7A

 

这个就是接下来自己推送用到的证书,最后创建配置文件:

创建配置文件选择刚刚自己创建的appid,然后选择证书,select all就行,最后选择设备,也就是测试的手机或者touch等,也选择all,创建成功之后双击进行安装。这样就装到自己xcode里边了。

配置后台流程:

1,首先将自己刚刚下载安装的cer证书在钥匙串里边找到,然后右键,导出证书:

046390C4-F3AF-4F21-A083-F179B50E8BB8

导出之后输入一个密码,记住这个密码,后边用,导出之后是一个p12文件,保存起来,最好和刚刚下载的cer这个文件保存在一个文件夹下。

然后打开终端,将cer文件和p12文件分别转换成pem文件: aps_development\ \(8\).cer是下载的证书文件。DevelopPushP12.p12是从钥匙串导出的p12证书。

openssl x509 -in aps_development\ \(8\).cer -inform der -out pushDeveCerTopem.pem

openssl pkcs12 -nocerts -out pushDeveP12Topem.pem -in DevelopPushP12.p12

第二次会出现输入密码的界面,就是刚自己导入时候设置的密码,然后会让输入四个字符的新的pem的密码,记住就行了。

然后会看见有两个pem的文件,然后将两个pem文件合并成一个pem文件,也就是将刚刚生成的两个pem合并了:

cat pushDeveCerTopem.pem pushDeveP12Topem.pem > sum.pem

接下来可以测试一下苹果的ssl服务的,也就是APNS的测试服务器:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert pushDeveCerTopem.pem -key pushDeveP12Topem.pem

如果出现图中的字样,那么说明配置成功了:

40B0D9D8-8345-4582-9FBF-3F74FD3AC6CA

然后进入xcode,记住自己的Bundle Identifier必须和刚刚申请的appid里边的Bundle Identifier匹配,然后选择xcode中这个项目是接收通知的:

4D6F4269-BCB0-434A-BAF5-B22016971379

然后appdelegate里边:

服务器:

将刚刚合成的pem文件和自己要运行的php文件放在同一个文件夹下,服务器代码:

然后真机选择在code sign里边选择自己的配置文件,证书不用选择,xcode会自动匹配:

846E6EE0-425E-401A-9E43-B951CD38CAA5

运行自己的app,然后打开终端,进入自己后台服务器的文件夹,运行php文件:

php push.php

如果运行上边服务器的代码,出现Connection OK的字样,说明后台没问题,然后再看看前台时候收到通知。

我这边是接收到了:

IMG_0304

最后看看要注意的几点:

1,每次的设备号获取之后不能自己在后台手动输入,而是获取之后通过http请求,将设备号发送给服务器,然后让服务器来推,所以项目中获取设备号之后:

2,小红点问题和跳转问题。当用户进入界面之后,用户离开后台之后小红点的处理。 跳转到指定页面的处理,服务器传来数据,通过客户端判断进行操作,不一一列举。

3,ios 的推送消息有256个字符长度限制;超出范围不能发送 ,且失败。

4,PHP运行的服务器如果没有开通sll模块,不管是apache,还是iis,都要开启这三个模块:

mod_include
mod_cgi
mod_expires

5,php文件在终端中打开,别再浏览器中打开,因为ssl模块不属于服务器的http模块,不开启服务也能推送,这是我试验过的。

 6,服务器可以通过不同的身份推送不同的消息给客户端,取决于服务器要什么参数和客户端传什么参数。

7,ios8的注册方法可以这么判断:

8,didFinishLaunchingWithOptions里边的配置应该有点多,不是这么写的应该是,改天改改。ios8步骤就是注册设置,然后注册,这么个流程。

9,推送就是实时通讯。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值