我是靠谱客的博主 现代服饰,最近开发中收集的这篇文章主要介绍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,推送就是实时通讯。



最后

以上就是现代服饰为你收集整理的iOS推送&PHP后台的全部内容,希望文章能够帮你解决iOS推送&PHP后台所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部