服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - iOS远程推送Push开发教程

iOS远程推送Push开发教程

2021-01-28 16:29binyao02123202 IOS

这篇文章主要为大家详细介绍了iOS远程推送Push开发教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

远程推送通知

什么是远程推送通知

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

为什么需要远程推送通知

传统获取数据的局限性 只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容

远程推送通知可以解决以上问题 不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知

远程推送通知使用须知

  • 所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接 什么是长连接 只要联网了,就一直建立连接
  • 长连接的作用 时间校准 系统升级 查找我的iphone .. ...
  • 长连接的好处 数据传输速度快 数据保持最新状态

推送原理

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

点击ios apps的证书

iOS远程推送Push开发教程

进入这样的界面

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

点击了继续我们看到

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

添加完,选择生成

iOS远程推送Push开发教程

证书配好了,下载下来

iOS远程推送Push开发教程

配好了!

iOS远程推送Push开发教程

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

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

iOS远程推送Push开发教程

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

iOS远程推送Push开发教程

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

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

在appdelegate.m中注册推送

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions {
  
  uiusernotificationtype types = uiusernotificationtypebadge                              | uiusernotificationtypesound | uiusernotificationtypealert ;
  
  uiusernotificationsettings * setting = [uiusernotificationsettings settingsfortypes:types categories:nil];
  [[uiapplication sharedapplication] registerusernotificationsettings:setting];
 
  return yes;
 }
 
 -(void)application:(uiapplication *)application didregisterforremotenotificationswithdevicetoken:(nsdata *)devicetoken
 {
  nslog(@"%@",devicetoken);
 }

devicetoken处理流程

iOS远程推送Push开发教程

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

将我们的推送证书添加到项目目录

iOS远程推送Push开发教程

iOS远程推送Push开发教程

接下来手机上就可以收到推送了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐
  • IOSiOS自定义UICollectionViewFlowLayout实现图片浏览效果

    iOS自定义UICollectionViewFlowLayout实现图片浏览效果

    这篇文章主要介绍了iOS自定义UICollectionViewFlowLayout实现图片浏览效果的相关资料,需要的朋友可以参考下...

    jiangamh8882021-01-11
  • IOSiOS中UILabel实现长按复制功能实例代码

    iOS中UILabel实现长按复制功能实例代码

    在iOS开发过程中,有时候会用到UILabel展示的内容,那么就设计到点击UILabel复制它上面展示的内容的功能,也就是Label长按复制功能,下面这篇文章主要给大...

    devilx12792021-04-02
  • IOSiOS实现控制屏幕常亮不变暗的方法示例

    iOS实现控制屏幕常亮不变暗的方法示例

    最近在工作中遇到了要将iOS屏幕保持常亮的需求,所以下面这篇文章主要给大家介绍了关于利用iOS如何实现控制屏幕常亮不变暗的方法,文中给出了详细的...

    随风13332021-04-02
  • IOSiOS中MD5加密算法的介绍和使用

    iOS中MD5加密算法的介绍和使用

    MD5加密是最常用的加密方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码。对输入信息生成唯一的128位散列值(32个字符)。这篇文...

    LYSNote5432021-02-04
  • IOSiOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)

    iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和

    这篇文章主要介绍了iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)的相关资料,需要的朋友可以参考下...

    CodingFire13652021-02-26
  • IOS详解iOS中多个网络请求的同步问题总结

    详解iOS中多个网络请求的同步问题总结

    这篇文章主要介绍了详解iOS中多个网络请求的同步问题总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    liang199111312021-03-15
  • IOSiOS开发之视图切换

    iOS开发之视图切换

    在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单。在iOS开发中常用的视图切换有三种,今天我们将...

    执着丶执念5282021-01-16
  • IOSiOS开发技巧之状态栏字体颜色的设置方法

    iOS开发技巧之状态栏字体颜色的设置方法

    有时候我们需要根据不同的背景修改状态栏字体的颜色,下面这篇文章主要给大家介绍了关于iOS开发技巧之状态栏字体颜色的设置方法,文中通过示例代码...

    梦想家-mxj8922021-05-10