iOS APNs远程推送(详细图文) + iOS10相关

来源:互联网 发布:SQL中trunc函数 编辑:程序博客网 时间:2024/05/14 06:49

文 / 夏天然后
一个喜欢瞎折腾的伪文艺青年 如果对你有所帮助请点赞/关注我 摸摸d

走心文章
微博-点我@夏天是个大人了 || QQ群: 498143780

前言: 大约一年之前做过一次推送, 自从项目稳定后, 推送这一块就没有再动过, 说实话步骤还是蛮多的, iOS10更新后, 一直懒得动, 没办法只好复习一遍且记录下来, 留做备份.

接下来的图文介绍都以开发环境为例, 生产环境就跟这个类似了, 下面进入正题.
吐槽: 各种文件真是头疼 - - .

一, 生成CertificateSigningRequest.certSigningRequest文件(之后会在开发者中心生成证书的时候用到)

打开Mac上的钥匙串访问 — 之后如图
CertificateSigningRequest.certSigningRequest
填写必要信息如图
选择存储到磁盘

二, 生成证书 (Push证书) & (测试证书)

2.1 Push证书
点击Development

选择第二项

选择你创建的App Id

这里选择第一步创建的cer文件
之后continue最后下载下来就可以了~

长成这样
2.1 生成测试证书
选择第一项之后参照Push证书一步一步执行就可以了~
第一步选择上面的一项
大致长成这样

例如

三, 生成配置概要文件

如图
选择对应的App Id 就好~
选择App Id

选择
之后continue 选择测试机 continue 起一个你能够区分的名字 之后下载

长成这样

四, 安装+生成 .p12文件

分别点击安装即可
之后还是在钥匙串访问中, 找到对应的证书, 右键导出, 命名即可
长成这样

解释:
1. 上述几步完成后繁琐的文件生成就结束了
2. .p12文件(比如 JPush就上传到JPush平台就可以了) 自己公司后台做推送, 就把证书给后台就可以, 后台会进行配置

之后在这些方法中进行代码的书写

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {        // 通知代码}// 更新一下deviceToken- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{    // 转换一下    NSString* dt = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];    NSString *token = [dt stringByReplacingOccurrencesOfString:@" " withString:@""];      //      // 这里发个网络把deviceToken传给后台}// error-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{    }// 消息- (void)application:(UIApplication *)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfo{    // 可对userInfo进行处理}

后记:

在Xcode8中保证通知正常需要这样
在图一你可能会碰到第一行的对号为红色的❌ 问题
原因可能在图2所示的位置证书选择的错误.
打开开关
图二
打开开关

总结: 正如我前面所提到的, 截图皆以开发环境为例, 我默认你是做过一段时间iOS开发的读者, 所以应该能明白我的意思, 也就是说生产环境的证书,配置文件, 在上传AppStore的时候都需要在生成一份.本文相对于iOS10关于通知的东西提到的较少你可以阅读下面我推荐的文章.

跳转指定界面
http://www.jianshu.com/p/c0eb32443915
推荐 http://www.jianshu.com/p/f5337e8f336d
推荐 http://www.jianshu.com/p/4b947569a548
推荐 http://www.jianshu.com/p/133b535a4e90
推荐 onevcat https://onevcat.com/2016/08/notification/

最后的最后留下 iOS10之前 和 iOS10的两张效果图

iOS10之后

iOS10之前

End

可以关注我的订阅号 [夏天然后 ID: xt1005430006]

夏天然后

1 0
原创粉丝点击