[iOS]使用JPush实现远程推送RemotePush的步骤
2015-09-15 本文已影响1927人
肖浩呗
有关推送,首先我们需要两个文件
- 真机证书是我们最终要的文件,后缀是.p12.
-
JPush-iOS-SDK-1.8.5文件是为了获取里面lib.运行程序时候拖入工程
图1-1
p12的制作步骤
AppID的创建过程
- 在苹果开发者官网中,点击
Member center
输入账号密码登陆. - 创建App ID[苹果应用程序ID]
-
点击加号,添加新的ID
- 在app ID description中,填写ID名字,. ID前缀定义为团队默认ID和一个应用程序ID后缀!
- appID 一般是:
XXXXTeam.Sample.XXX
前面是开发团队的名字, 中间是项目名后面是一个自己定义的一串字符 - Bundle ID 一般是
com.XXXXXXX.Sample
- appID 一般是:
- 点击
Continue
→Submit
→Done
CSR文件的生成过程
-
打开Mac OS X系统内的钥匙串访问程序.
-
存储将要生成的文件
-
存储的结果
Certificates的创建过程
有两种方法,最简便的方法是:
点击
搜索
进去在最下方
-
选择刚才生成的CSR文件上传
- 然后
Continue
,并且下载生成的文件
- 双击
aps_development.cer
,会自动安装到钥匙串访问
程序内
-
导出的时候,可以设置密码,也可以不设置.都可以.
生成可用的mobileprovisioning文件
- 点击
Member Center
中的Provisioning
- 点击
+
按钮
- 选择与我们刚才创建的相同的
App ID
- 点击
Continue
,Select All
全选下一步
-
选择可以进行测试的真机设备
- 下载
mobileprovisioning
,保存在桌面上就可以.
到此为止,P12证书的制作就完成了
极光推送后台的配置过程
-
进入极光推送→控制台.创建新的应用.
-
上传成功后,会有对应的提示
Xcode代码中的实现过程
- 双击
mobileprovisioning
描述文件,也就是我们最后生成的文件.
- 将开头我们下载的JPush框架中的lib拖进 工程.编译一下.
- 引用必要的框架.
CFNetwork.framework
CoreFoundation.framework
CoreTelephony.framework
SystemConfiguration.framework
CoreGraphics.framework
Security.framework
-
libz.dylib
- 在你的工程里创建一个新的property list文件 填入参数.
{
"APS_FOR_PRODUCTION" = "0";
"CHANNEL" = "Publish channel";
"APP_KEY" = "AppKey copied from JPush Portal application";
}
这个appkey 就是你在jpush中创建的那个应用 app key(点击去就可以看到)
CHANNEL 一般默认为0
- 更改应用程序唯一标识符
bundle identifier
- 在
AppDelegate.m
文件的代码实现
- (void)application:(UIApplication *)application didFinishLaunchWithOptions:(id)options
{
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
//可以添加自定义categories
[APService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge|UIUserNotificationTypeSound |UIUserNotificationTypeAlert)
categories:nil];
} else {
//categories 必须为nil
[APService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)
categories:nil];
}
// Required
[APService setupWithOption:launchOptions];
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
// Required
[APService registerDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
// Required
[APService handleRemoteNotification:userInfo];
}
运行程序即可……
感谢 @李晓飞