您的位置:首页 > 移动开发 > IOS开发

iOS 远程推送实现远程推送 证书申请 环境配置等

2017-03-07 13:21 549 查看
在App中 大部分应用都用到远程推送的功能  如果你能静下心来从头到尾读这篇文章  完全就没有问题了  原理在这里就不阐述了  我们直接来实现远程推送  用到了极光推送

1、我们先创建一个工程   在项目中查看Bundle Identifier



登录苹果开发者中心  进入证书管理界面  创建App ID



注意创建的App Id 要与项目中 Bundle Identifier 对应  并且勾选 Push Notifications



至此 App ID 的创建我们就完成了   下面来创建  推送的测试证书  和  生产证书  

进入钥匙串访问应用



如图  选择 从证书颁发机构申请证书



创建两个文件  PushTestNotification (申请测试环境证书用到 )和  pushProductionNotification (申请生产环境证书用到)





下面  进入苹果开发者中心 证书管理界面创建证书  推送的测试环境证书  与生产环境证书 如下图所示



点击下一步之后  选择刚刚创建的APP ID  注意一定要对应上APP ID    在这里选择刚刚在钥匙串申请的文件  注意也要跟证书对应上



创建并下载完之后是这样的



然后  我们进入 钥匙串访问界面  找到  这两个证书 



选中之后  右键   选择导出   (注意导出要求输入的密码为 证书的密码  可以直接选择:“好”  跳过)



导出之后的  p12文件如下图所示    (注意 :极光推送不需要生成pem文件)



至此   证书已经准备完毕  

打开极光推送 官网  https://www.jiguang.cn 

创建账号  并且创建应用   如下图所示 



然后点最下方创建   创建之后的应用状态如下图所示 



在官网下载SDK   https://docs.jiguang.cn/jpush/resources/#ios-sdk

然后打开我们的Xcode工程  最后的配置如下图所示



在Signing这里选择自动管理





接下来  进入代码环节    打开工程 AppDelegate.m  

#import "JPUSHService.h"

//iOS10新出的注册推送的方法与此不同,待后续文章更新
if ([[UIDevicecurrentDevice].systemVersionfloatValue] >= 8.0) {
//可以添加自定义categories
[JPUSHServiceregisterForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
UIUserNotificationTypeSound |
UIUserNotificationTypeAlert)
categories:nil];
} else {
//categories必须为nil
[JPUSHServiceregisterForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert)
categories:nil];
}
appkey填刚刚申请下来的appkey   apsForProduction选择NO是测试环境  YES是生产环境需要与后台配置一致 否则无法收到推送消息
[JPUSHServicesetupWithOption:nilappKey:@"b731a00d2fdd9811cb8dd9f9"channel:@"APP STORE"apsForProduction:NO];


- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
//注册 DeviceToken
[JPUSHServiceregisterDeviceToken:deviceToken];
}


//收到推送方法

//收到推送方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:
(void (^)(UIBackgroundFetchResult))completionHandler {
NSLog(@"----------%@",userInfo);
completionHandler(UIBackgroundFetchResultNewData);
}


好了  我们来运行一下  如下图   选择允许 



运行状态下  会走收到推送的方法   didReceiveRemoteNotification  退到后台  或者锁屏状态下 会已横幅的状态显示

我们先锁屏  看一看效果

打开极光推送网站  在控制台点击我们的应用 选择上方  推送



选择左侧发送通知   来测试一下  



然后点击最下方  发送   



至此   简单的推送功能已经完成    如果有问题欢迎提问  谢谢大家  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息