当前位置: 移动技术网 > IT编程>移动开发>IOS > iOS开发之(APNS)远程推送实现代码 附证书与真机调试

iOS开发之(APNS)远程推送实现代码 附证书与真机调试

2019年07月24日  | 移动技术网IT编程  | 我要评论

小学生300字日记,学校管理案例分析,华科白云黄鹤

远程推送通知

什么是远程推送通知

顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为apns(applepush notification services)

为什么需要远程推送通知传统获取数据的局限性只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容远程推送通知可以解决以上问题不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知远程推送通知使用须知所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接什么是长连接只要联网了,就一直建立连接长连接的作用时间校准系统升级查找我的iphone.....长连接的好处数据传输速度快数据保持最新状态推送原理

provider就是我们公司的服务器,经过苹果的apns服务器找到我们的设备,给我们设备上的客户端应用推送消息。那apns服务器是如何找到我们的设备和设备上的应用呢,答案就是devicetoken,devicetoken需要配置推送证书才可以获得,推送证书需要知道我们的appid(应用的bundleid,应用唯一标识)和udid(设备唯一标识),还有自己服务器的udid,我们先来打一个推送证书,登录开发者中心,点击证书模块

点击ios apps的证书

进入这样的界面

点击app ids,然后点右上角的加号

箭头所指为应用id描述,我们假设写了一个很牛逼的应用,excitedapp,接下来我们填入app id,注意这里的appid是固定的,不能有星号

接下来我们添加app所需要的服务,然后点击continue

一直点击下一步,完成,在app ids 列表里面找到我们的excitedapp,我们看到

发现push服务是黄色警告,这时点击edit,找到推送模块,我们需要配置推送证书了,点击红色箭头所指的位置

我们需要一个csr文件,csr是一个签名请求文件,意思就是让我们的mac具有调试推送的权限,点击继续

点击了继续我们看到

然后我们打开mac上的钥匙串,从证书颁发机构请求证书

前两个随便写,最后选择存到磁盘

完成之后,接下来我们就可以添加csr文件了

添加完,选择生成

证书配好了,下载下来

配好了!

顺带着我们把发布的证书也给配了,步骤都一样

打开我们刚刚下载的证书,添加到钥匙串中

终于能开始整我们的项目了,快哭了都

不要忘记修改bundle id 这里还要搞一个真机调试的证书才可以

真机调试的东西这里不累述,搞了这么多东西,我们终于可以拿到devicetoken了

在appdelegate.m中注册推送

- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions {
  
  if ([[[uidevice currentdevice] systemversion] floatvalue] >= 8.0) {
  uiusernotificationtype mytypes = uiremotenotificationtypebadge | uiremotenotificationtypealert | uiremotenotificationtypesound;
  uiusernotificationsettings *settings = [uiusernotificationsettings settingsfortypes:mytypes categories:nil];
  [[uiapplication sharedapplication] registerusernotificationsettings:settings];
 }else
 {
  uiremotenotificationtype mytypes = uiremotenotificationtypebadge|uiremotenotificationtypealert|uiremotenotificationtypesound;
  [[uiapplication sharedapplication] registerforremotenotificationtypes:mytypes];
 }
 

  return yes;
}

-(void)application:(uiapplication *)application didregisterforremotenotificationswithdevicetoken:(nsdata *)devicetoken
{
 nslog(@"%@",devicetoken);
}

//ios8 另外增加以下方法
#ifdef __iphone_8_0
- (void)application:(uiapplication *)application didregisterusernotificationsettings:(uiusernotificationsettings *)notificationsettings
{
 [application registerforremotenotifications];
}
#endif

devicetoken处理流程

接下来我们用smartpush来测试一下我们的推送:https://github.com/shaojiankui/smartpush

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

  • ios uicollectionview实现横向滚动

    现在使用卡片效果的app很多,之前公司让实现一种卡片效果,就写了一篇关于实现卡片的文章。文章最后附有demo实现上我选择了使用uicollectionview ... [阅读全文]
  • iOS UICollectionView实现横向滑动

    本文实例为大家分享了ios uicollectionview实现横向滑动的具体代码,供大家参考,具体内容如下uicollectionview的横向滚动,目前我使... [阅读全文]
  • iOS13适配深色模式(Dark Mode)的实现

    iOS13适配深色模式(Dark Mode)的实现

    好像大概也许是一年前, mac os系统发布了深色模式外观, 看着挺刺激, 时至今日用着也还挺爽的终于, 随着iphone11等新手机的发售, ios 13系统... [阅读全文]
  • ios 使用xcode11 新建项目工程的步骤详解

    ios 使用xcode11 新建项目工程的步骤详解

    xcode11新建项目工程,新增了scenedelegate这个类,转而将原appdelegate负责的对ui生命周期的处理担子接了过来。故此可以理解为:ios... [阅读全文]
  • iOS实现转盘效果

    本文实例为大家分享了ios实现转盘效果的具体代码,供大家参考,具体内容如下demo下载地址: ios转盘效果功能:实现了常用的ios转盘效果,轮盘抽奖效果的实现... [阅读全文]
  • iOS开发实现转盘功能

    本文实例为大家分享了ios实现转盘功能的具体代码,供大家参考,具体内容如下今天给同学们讲解一下一个转盘选号的功能,直接上代码直接看viewcontroller#... [阅读全文]
  • iOS实现轮盘动态效果

    本文实例为大家分享了ios实现轮盘动态效果的具体代码,供大家参考,具体内容如下一个常用的绘图,主要用来打分之类的动画,效果如下。主要是ios的绘图和动画,本来想... [阅读全文]
  • iOS实现九宫格连线手势解锁

    本文实例为大家分享了ios实现九宫格连线手势解锁的具体代码,供大家参考,具体内容如下demo下载地址:效果图:核心代码://// clockview.m// 手... [阅读全文]
  • iOS实现卡片堆叠效果

    本文实例为大家分享了ios实现卡片堆叠效果的具体代码,供大家参考,具体内容如下如图,这就是最终效果。去年安卓5.0发布的时候,当我看到安卓全新的material... [阅读全文]
  • iOS利用余弦函数实现卡片浏览工具

    iOS利用余弦函数实现卡片浏览工具

    本文实例为大家分享了ios利用余弦函数实现卡片浏览工具的具体代码,供大家参考,具体内容如下一、实现效果通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间... [阅读全文]
验证码:
移动技术网