1.先申请一个百度开发者账号 http://push.baidu.com/fc
2.创建一个新应用,并应用配置
3.选择苹果的图标,开发用就选择开发状态,上线就可以选择生产状态
4.此时就让你上传开发证书,这个上传的文件需要时pem形式的,下面介绍,这个证书怎么配置
*创建app id,同一个公司可能会使用类似于 com.example.* 这样通用的 app id,但是如果要在 app 中加入消息推送功能,那么是不能使用通用 id 的,需要为之单独创建一个。
首先登陆 ios dev center ,然后进入 member center,然后选择 certificates,identifiers & profiles,如下图:
然后点击下图红框中的任意条目,进入证书界面,如下图:
在进入证书界面后,在左边的identifiers选择中选定app ids,点右上角加号创建appid,如下图:
在创建 app id 的过程中,需要勾选 push 服务,如下图:
进入提交页面,push服务处于configurable状态,如下图:
点击submit后到确认页面,如下图:
点击done后到初始页面,然后再次选择自己创建的appid,如下图:
在下图中选择edit按钮,配置推送的环境,如图:
然后配置好对应的推送环境,个人版和企业版的开发环境都是选择创建development ssl certificate类型的。个人版和企业版的发布环境。发布环境分以下三种:1. in-house必须是企业开发账户(企业内)(299美金) 2.ad-hoc个人账户或公司company账户(99美金),但只用于内部测试(总共100个设备).3.上线appstore只能是个人账户或公司company账户(99美金))如下图:
如果你是为已有的 app 增加消息推送功能,那么打开原有的 app id,开启 push notification 选项即可。流程跟上面的一样。
7.2 创建及下载证书
点击 create certificate按钮后会出现“about creating a certificate signing request (csr)”,如下图:
到了这里,需要停下制作 csr 文件,制作过程比较简单,下面是制作的过程。打开 mac 系统软件'钥匙串访问',选择 '证书助理' 及 '从证书颁发机构请求证书',制作 csr 文件,如下图:
生成证书后,返回到 “about creating a certificate signing request (csr)” 的界面,点击 continue,然后在 “choose file” 选择生成的csr文件,最后点击 generate,生成证书。如下图:
现在证书制作已经完成。下载并双击用“钥匙串访问” 程序打开后,在左边一栏,上面选择登录,下面选择证书,然后选择刚刚打开的证书,切记不要展开它,直接右击导出p12,如下图:
将文件保存为 .p12 格式,输入密码,如图所示:
最后进入终端,到证书目录下,运行以下命令将p12文件转换为pem证书文件:
openssl pkcs12 -in myapnscert.p12 -out myapnscert.pem -nodes
提示需要输入密码,输入刚才导出 p12 时的密码即可。
此时你要配置的证书就配置完成了,上传这个证书就可以了。
5 就是在官方下载demo,打开开发的demo,把你刚刚申请的应用的api key添加到工程里
6. 开始更改工程里的东西
1)bundle identifier 改成你配置的bundle identifier
2)plish文件里的bundle identifier也改了
3) build setting ---coding signing----provisioning profile 描述文件 去配置一个
provisioning profile的创建 点击下图的+按钮开始创建profile
选择profile的环境
选择创建profile的appid和开发者证书,并选择设备,最后生成profile
最后下载profile配置到xcode中进行开发测试
注意。看看你这个描述文件好使不,不好使就收不到推送
7.运行,基本的推送就可以了
8.之后就要说自定义的推送内容,根据高级设置里的key = value 跳转到对应的点界面
demo里的方法
1
2
|
// 此方法是 用户点击了通知,应用在前台 或者开启后台并且应用在后台 时调起 - ( void )application:(uiapplication *)application didreceiveremotenotification:(nsdictionary *)userinfo fetchcompletionhandler:( void (^)(uibackgroundfetchresult))completionhandler{} |
可以在这个方法里面获得userinfo,就是我们高级设置里面传过来的字典,用userinfo[@"key"]传一个值,
1
2
3
4
5
6
7
|
@interface appdelegate ()<uialertviewdelegate> { uitabbarcontroller *_tabbarctr; nsstring * _str; } //传值 _str = userinfo[@ "key" ]; |
这个方法就是点击确定和取消的响应
1
|
- ( void )alertview:(uialertview *)alertview clickedbuttonatindex:(nsinteger)buttonindex{} |
可以在这里面填写你想要跳转的界面
1
2
3
4
5
6
|
if (buttonindex == 1) { if ([_str isequaltostring:@ "bookviewcontroller" ]) { bookviewcontroller *bookvc = [[bookviewcontroller alloc ] init]; [_tabbarctr.selectedviewcontroller presentviewcontroller:bookvc animated:yes completion:^{ }]; } |
9.可以自己设置提醒的声音
放工程里面一个音频文件,
必须为以下几种数据格式:
•linear pcm
•ma4(ima/adpcm)
•μlaw
•alaw
你可以将它们打包为 aiff、wav 或caf文件。自定义的声音文件时间必须小于 30 秒,如果超过了这个时间,将被系统声音代替。