在我们使用App的过程中。总是会收到非常多的消息推送。今天我们就要来实现这个功能。首先消息推送分为本地消息推送和远程消息推送。而当中又以远程消息最为经常使用。

可是在推送远程消息之前。有两个前提条件。你须要购买苹果的开发人员账号,也就是每年99刀;而且有一台iOS真机(模拟器不能測试推送)。事实上远程推送须要有server,可是我们自己临时没有server,到时候后台使用Parse进行推送。

实现过程例如以下:

(1)进入苹果的开发人员站点:https://developer.apple.com/  。点击右上角的Member Center,登录。就会进入例如以下界面:

(2)点击Certificates,Identifiers & Profiles 进入,出现例如以下界面:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(3)点击iOS Apps中的Certificates中进入,出现例如以下界面。開始进行配置:

(4)打开Mac上的钥匙串訪问,选择钥匙串訪问-->证书助理-->从证书颁发机构请求证书。

用户电子邮件地址和CA电子邮件地址都填写你已经申请的开发人员账号,经常使用名称能够任意,然后存储到磁盘就可以。

这样就会生成一个CSR文件,在站点上配置时须要用到。如图:

生成的文件例如以下:

(5)然后再来到刚才的开发人员站点上。选择Certificates-->Development(开发用),假设你要公布,也能够选择Production,然后在右側点击如图所看到的:

(6)然后在进入的页面中选择第二项:Apple Push Notification Service SSL (Sandbox).  点击continue.

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(7)假设你还没有为你的应用创建App ID,那么就会出现例如以下界面。创建一个就可以。然后点击continuebutton。

(8)App ID Description 的name能够任意取,我填MyPushDemo。

在Explicit App ID的Bundle ID中填入你应用的ID,我填入 com.chenyufengweb.MyPushDemo.

在最以下的App Services。中选择Push Notifications,点击continuebutton。

进入下一个页面再点击submit就可以。

(9)注意。因为一開始我们没有创建App ID。经过以上步骤,我们仅仅是完毕了创建App ID的步骤。以下我们还是要创建Certificates证书。

此时就会出现例如以下界面,你选择自己要用的那个App ID就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""> 。

(10)进入到例如以下界面后,选择我们刚才从钥匙串訪问生成出来的CSR文件:然后点击Generate就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(11)出现例如以下界面,下载我们的证书就可以,点击Done就可以。

(12)这样我们的证书就生成、配置好了。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

下载后的文件例如以下:

(13)此时我们还须要生成一样东西。点击Certificates-->Development,点击右上角“+”号button,在出现的界面中选择第一项(之前我们选择了第二项Apple Push Notifiation).点击continue。

(14)同上,选择钥匙串訪问时生成的CSR文件。点击Generate。然后一路Continue就可以。此时Certificates下的界面如图:

下载后的cer文件例如以下:

(15)经过以上步骤。我们的App IDs和Certificates就生成好了。

以下要開始配置 Provisioning Profile.点击Provisioning Profiles中的Development(这是开发。假设你要公布,能够选择Distribution).

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">.

(16)然后点击右上角的“+”号button,加入一个配置文件。

选择iOS App Development。点击Continue继续。

(17)选择刚才我们生成的App ID就可以:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(18)然后选中我们的证书就可以。

点击Continue继续。

(19)在以下出现的界面选择我们须要測试的设备,所有选中就可以。Continue继续。

(20)下图中输入Profile Name。任意就可以。点击Generate就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(21)然后下载Profile文件。

下载后的文件例如以下:

(22)通过以上步骤。我们在苹果开发人员站点上的配置已经完毕了。如今我们已经下载了3个文件,直接双击三个文件进行安装就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(23)此时再次打开钥匙串訪问。就会在“证书”中出现我们刚才生成、安装的证书。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(24)点击右键,导出这个证书。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

你能够输入password和验证,可是我们使用Parse作为后台进行推送,Parse不须要进行验证,我们直接点击“好”就可以。

最后输入我们的电脑password就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

最后会在桌面上生成.p12文件。

(25)以下我们開始使用Parse进行推送。网址: http://www.parse.com/ 。

注冊一个账号,然后创建一个新的App,如图:

(26)点击左側面板App Setting-->Push.在右側的Apple Push Certificates中上传刚才生成的.p12文件。

上传成功后例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(27)如今配置所有完毕。開始要写代码了。

我们偷个懒,直接从Parse上下载Demo使用。我也上传到Github。大家直接配置就能够使用:https://github.com/chenyufeng1991/iOS-ParsePushDemo

选择Download。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

(28)然后就会出现例如以下界面,选择Blank Project下载空文件就可以。解压打开就能够使用。

(29)打开项目,进入ParseStarterProjectAppDelegate.m文件,取消凝视以下这行代码:

[Parse setApplicationId:@"your_application_id" clientKey:@"your_client_key"];

然后再次来到Parse中,从App Settings-->Security & Keys找到Application ID 和Client Key填入上面的代码中。

如今这行代码就变为:

[Parse setApplicationId:@"2MRcLbJlEP3PF4s8tNOf14jcy2qjH4tVEKzta41k" clientKey:@"N0onfUozbzRDDxkZTKBb9aOLyLi9uiWZilzeeO5S"];

(31)同一时候要改动程序的App ID,刚才我设置的是com.chenyufengweb.MyPushDemo   .仅仅要在Info.plist文件的Bundle identifier中改动就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(32)然后还要进入Targets-->Build Stetings,右側输入 code sign搜索。把下方的Provisioning Profile设置成我们在开发人员站点上输入的Name,把Code Signing Identity设置成自己的开发人员账号。

(33)经过以上复杂的步骤。你就能够在真机上执行程序了。当程序执行起来后,我在Parse上推送一条消息。进入Push。然后点击右上角的Send a push.

.

.

(34)然后在Parse上推送一条消息。

点击发送就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(35)大概几秒之后。client就会收到推送消息。点击推送消息就能进入App。至此,整个远程消息推送就完毕了。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

总结:远程推送的配置过程是较为麻烦的。假设大家有时间,能够对APNS,签名。Provisioning Profile,证书等概念进行了解,就会更加的得心应手。

github主页:https://github.com/chenyufeng1991 
。欢迎大家訪问!

iOS开发——远程消息推送的实现的更多相关文章

  1. iOS开发笔记8:Remote Notification远程消息推送处理

    远程消息推送处理场景有三种:分别是app还没有运行.app在前台运行以及app在后台运行,下面介绍相关流程及三种场景下处理步骤 1.流程 (1)注册通知 首先是在注册远程消息推送,需要注意的是iOS8 ...

  2. iOS远程消息推送原理

    1. 什么是远程消息推送? APNs:Apple Push Notification server 苹果推送通知服务苹果的APNs允许设备和苹果的推送通知服务器保持连接,支持开发者推送消息给用户设备对 ...

  3. (转)在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送

    在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送 From: http://saeapns.sinaapp.com/doc.html 1,在 ...

  4. 基于APNs最新HTTP/2接口实现iOS的高性能消息推送(服务端篇)

    1.前言 本文要分享的消息推送指的是当iOS端APP被关闭或者处于后台时,还能收到消息/信息/指令的能力. 这种在APP处于后台或关闭情况下的消息推送能力,通常在以下场景下非常有用: 1)IM即时通讯 ...

  5. 李洪强iOS开发之极光推送JPush

    李洪强iOS开发之极光推送JPush

  6. iOS 远程消息推送,原理和开发详解篇(新手推荐)

    1.APNS的推送机制 首先我们看一下苹果官方给出的对ios推送机制的解释.如下图 Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Servic ...

  7. 分分钟搞定IOS远程消息推送

    一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://my.oschina.net/u/2340880/blog/405491这篇博客中有详细的介绍,这里主要讨论远 ...

  8. iOS远程消息推送

    iOS 推送基础知识 Apple 使用公共密钥数字证书对来自 iOS 应用程序的推送请求进行身份验证,所以您首先需要创建身份验证密钥,并向 Apple 注册它们.我将在下一节中花相当长的篇幅来直接介绍 ...

  9. iOS远程消息推送自我整理版

    @interface AppDelegate () <UIApplicationDelegate> @end @implementation AppDelegate - (BOOL)app ...

随机推荐

  1. PCB 奥宝LDI 输出 轴交换与镜像关系

    持续P2 奥宝LDI改造,针对轴交换与镜像关系整理如下:(标记) 关键参数说明: 轴交换swap_axes: 当为Yes,则图形--镜像+旋转90度,当为No,则图形--不动 xmirror与ymir ...

  2. Dotnet Core2.1 使用CodeFirst

    一.添加Mysql引用 二.添加连接字符串 三.配置startup.cs 三.初始化数据库 Add-Migration init Update-Database 四.数据迁移 user实体添加了pas ...

  3. SQLServer外部数据导入--Excel版

    例如要在test表里插入多行数据 假设字段有: ID.Name 首先要有需要导入的数据的Excel A1 对应ID B1 对应Name 选中Excel第一行的空白处,比如C1,在工具栏的函数文本框里输 ...

  4. nodejs 中使用 mysql 实现 crud

    首先要使用 mysql 就必须要安装 npm install mysql 然后封装 sql 函数 const mySql = require('mysql'); let connection ; le ...

  5. 【JAVA练习】- 给定精度求圆周率π

    给定一个精度求圆周率π的近似值 给定公式:π/4=1-1/3+1/5-1/7+1/9-... public static void main(String[] args) { System.out.p ...

  6. iconfont在ios(safari)中的坑

    最近公司决定将项目图标整体迁移到iconfont,按网上常规方法,在安卓.pc端都没问题,唯独在ios的safari浏览器及微信内置浏览器中,iconfont始终在正常位置向下偏移,导致图标错乱. 网 ...

  7. 《Linux程序设计》笔记(二)shell程序设计

    1. 进程树形显示 ps -e f 2. 重定向 > 覆盖文件 >> 附加至文件 1> 标准输出 2> 标准错误输出 0 代表一个程序的标准输入 3. 程序可以在当前目录 ...

  8. 【技术累积】【点】【编程】【13】XX式编程

    (原)函数式编程 核心概念 函数式一等公民(输入输出啥的都可以是函数): 纯函数,固定输入带来固定输出: 阅读性良好,无并发问题,但效率偏低: 大历史背景 旨在描述问题如何计算: 有两位巨擘对问题的可 ...

  9. react基础篇一

    jsx简介 const element = <h1>Hello, world!</h1>; 这种看起来可能有些奇怪的标签语法既不是字符串也不是 HTML. 它被称为 JSX, ...

  10. Nginx.conf介绍

    在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户user www-data;    #启动进程,通常设置成和cpu的数量相等worker_process ...