浅谈iOS的消息推送

作者: 见哥哥长高了 | 来源:发表于2016-03-21 22:04 被阅读1455次

创建App ID

要实现远程推送的功能,需要我们创建AppID,推送证书配置等相关操作,我们首先登陆https://developer.apple.com 进入开发者中心


点击+号添加之后需要我们输入Name和Boundle ID,那么我们自己设定 但是boundle ID 就要和我们的工程的boundle identifier要是一样的




然后需要我们在App Serviers里面勾线Push Notification选项->continue->submit->done此时我们的APPID就创建成功了


创建推送证书和描述文件

由于只是测试我们选择Developement



->



->App ID就是我们上面创建的App ID->点击continue->continue

在Generate your certificate.页面会提示我们上传一个CSR文件,那么怎么去生成一个CSR文件呢?



这个时候我们就需要我们的钥匙串了,打开钥匙串

接下来 电子邮件地址必填 我们也可以随便填 保存到桌面上,完成

然后我们点击choose file..上传CSR文件->continue->DownLoad下载到桌面上
接下来我们创建描述文件 点击+创建

选择开发环境->continue



选择我们的App ID ->continue

->

->

->我们不知道具体是哪一个的话 可以选择全部

->

->Continue然后DownLoad
到这里我们的证书和描述文件都已经创建好了 我们双击我们的证书,在钥匙串里面可以查看证书信息,双击描述文件 加到Xcode里面Build Settings->Provisioning Podfile 选择我们的证书,code single identifier 选择我们的开发证书

->

推送的实现

一个应用程序要想实现推送的话 就需要注册推送通知 远程推送 在iOS8之前和之后的注册方式不一样 所以要做系统版本适配 根据不同的iOS版本 执行不同的注册代码
在APPDelegate里

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//条件编译  // 条件编译指令:根据判断条件,编译不同区块的代码
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= _IPHONE80_
    
    //1 配置远程推送收到消息后的状态:有脚标 有声音 有弹框
    UIUserNotificationSettings *set = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert) categories:nil];
    
   //2 将配置添加进远程托送的设置中
    [[UIApplication sharedApplication]registerUserNotificationSettings:set];
    
   //3 注册远程推送
    [[UIApplication sharedApplication]registerForRemoteNotifications];
      
#else
    
    [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert];
    
#endif
    return YES;
}

这个时候运行我们的程序会看到如下提示信息



此时用户点击允许之后 应用程序会向苹果APNS注册,获取令牌,令牌唯一标识当前的设备

//远程推送注册成功后 会执行这个方法 通过改代理将APNS提供的DeviceToken传进APP 进而由APP转发给推送服务器

//从苹果APNS获取Token成功
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    NSLog(@"远程推送能力注册成功,deviceToken:%@",deviceToken);
}

//注册失败(获取Token)的话会执行的方法(设备不具备推送能力)

-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
    NSLog(@"远程推送注册失败 原因是:%@",error);
}

//当程序收到远程推送消息后 执行该方法 在这个方法中接收远程推送进来的内容(死亡)

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    NSLog(@"推送内容是:%@",userInfo);
}

获取到苹果的Token之后 我们需要把token上传我们的服务器 因为这样 我们的服务器才能告诉苹果APNS需要给那些设备发送推送消息,下面是一张截屏 但此时是2016年,我们把token传递给服务器的时候是需要去掉<>和空格 这些不再啰嗦


腾讯信鸽第三方的推送服务

下面我们来探讨一下 使用腾讯第三方的信鸽进行推送是怎么实现的



->点接入应用->点应用配置,我们会看到应用配置里面有我们应用的各种信息 ,而且需要我们上传开发证书



点击上传我们看到需要的是一个pem格式的证书 那么我们怎么获取pem格式的证书呢?这时候我们的好朋友钥匙串又粉墨登场了

->



->

此时我们就获得了一个.p12的文件 我们把.p12转化成pem格式文件的话 需要用到终端我们切换到桌面上 在终端输入:openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes 并且将桌面上p12的名字进行替换 然后回车,这个时候需要我们输入一个密码 这个密码就是我们进行导出p12文件是的密码 然后在回车 此时.pem的文件就已经生成好了 我们在信鸽的配置平台里面点击上传就可以了 上传成功的话 会显示

开发证书验证通过后 在配置平台会显示验证通过
我们需要在AppDelegate进入信鸽的头文件
#import "XGPush.h"

注册信鸽

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    //初始化信鸽
    [XGPush startApp:2200189030 appKey:@"I958DSYJ18GA"];
return YES;
}

此时还没完,我们需要在信鸽配置平台添加一台设备,通过以下方法 我们能过的一个设备的Token

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    [XGPush registerDevice:deviceToken];//信鸽获取Token
    NSLog(@"远程推送能力注册成功,deviceToken:%@",deviceToken);
}

接下来我们就可以进行推送了 我们点->创建通知(信鸽配置平台上),推送环境我们选开发环境就行了 其他的自己设定



点击-> 确认推送之后就可以进行推送了 ,此时测试机可以收到信息,但是用户点击了信息之后如何处理呢?需要执行-(void)application:(UIApplication *)application didReceiveRemoteNotification:方法 userInfo里面就是我们推送的信息

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    NSLog(@"推送内容是:%@",userInfo);
}

相关文章

  • 浅谈iOS的消息推送

    创建App ID 要实现远程推送的功能,需要我们创建AppID,推送证书配置等相关操作,我们首先登陆https:/...

  • 细说 iOS 消息推送

    细说 iOS 消息推送 细说 iOS 消息推送

  • 浅谈产品之消息推送

    浅谈产品设计之消息推送,详情查看图片

  • iOS 远程推送通知

    iOS 远程推送通知 分分钟搞定IOS远程消息推送 iOS推送通知的实现步骤 推送通知iOS客户端编写实现及推送服...

  • iOS 远程消息推送 APNS推送原理和一步一步开发详解篇(新手

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

  • 技术贴合集

    iOS网络图片尺寸适配 iOS 10 消息推送(UserNotifications)秘籍总结 静默推送 iOS 面...

  • iOS开发常用之消息相关

    消息相关 消息推送客户端 SGPushDemo - 消息推送客户端 Orbiter - 消息推送客户端:iOS...

  • iOS消息推送

    一、关于推送 1、本地推送 只要用户允许了推送通知,并且通知提醒类型不为空,就可以进行本地推送。 2、远程推送 首...

  • iOS 消息推送

    [TOC] 一、工作机制: APNS 是 Apple Push Notification Service 的缩写,...

  • iOS消息推送

    推送的注册: 方法回调 iOS10及以上方法回调 iOS10以下: 推送的Extension 分为service和...

网友评论

本文标题:浅谈iOS的消息推送

本文链接:https://www.haomeiwen.com/subject/encklttx.html