zoukankan      html  css  js  c++  java
  • iOS开发之远程推送Push

    远程推送通知

    什么是远程推送通知

    顾名思义,就是从远程服务器推送客户端的通知(需要联网)远程推送服务,又称为APNsApple Push Notification Services

    为什么需要远程推送通知

    • 传统获取数据的局限性 只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容
    • 远程推送通知可以解决以上问题 不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知

    远程推送通知使用须知

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

    推送原理

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

    点击iOS Apps的证书

    进入这样的界面

    点击App IDs,然后点右上角的加号

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

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

    一直点击下一步,完成,在App IDs 列表里面找到我们的ExcitedApp,我们看到

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

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

    点击了继续我们看到

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

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

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

    添加完,选择生成

    证书配好了,下载下来

     

    配好了!

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

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

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

     

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

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

    在AppDelegate.m中注册推送

    1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    2     
    3     UIUserNotificationType types = UIUserNotificationTypeBadge                                                                                                                      | UIUserNotificationTypeSound | UIUserNotificationTypeAlert ;
    4     
    5     UIUserNotificationSettings * setting =  [UIUserNotificationSettings settingsForTypes:types categories:nil];
    6     [[UIApplication sharedApplication] registerUserNotificationSettings:setting];
    7 
    8     return YES;
    9 }
    1 -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
    2 {
    3     NSLog(@"%@",deviceToken);
    4 }

    DeviceToken处理流程

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

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

     

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

  • 相关阅读:
    C#基础:单例模式与多线程
    C#基础:线程同步
    C#基础:C#中的数据结构
    C#基础:GC中什么是代,一共分几代
    C#基础:Dispose方法和Finalize方法在何时被调用
    C#基础:.NET中GC的运行机制
    C#基础:简述.NET中堆栈和堆的特点和差异
    PLSQL_基础系列05_视图控制WITH CHECK OPTION(案例)
    PLSQL_基础系列04_时间间隔INTERVAL(案例)
    PLSQL_基础系列03_合并操作UNION / UNION ALL / MINUS / INTERSET(案例)
  • 原文地址:https://www.cnblogs.com/dongwenbo/p/4288165.html
Copyright © 2011-2022 走看看