美文网首页配置第三方苹果框架
iOS 优雅插件地集成极光推送,设置标签别名

iOS 优雅插件地集成极光推送,设置标签别名

作者: canlanrensheng | 来源:发表于2018-02-13 20:39 被阅读130次

前言:

推送功能是每一个App都要有的功能,对于我们写的项目的通用框架来说是必须要添加进去的。但是之前都是大部分都写在appdelegate.m里面,处理消息在前台,后台,程序杀死之后的方法,消息红点,iOS各种版本的代理方法,光一个极光推送就占据了appdelegate.m半壁江山,以后再写一些第三方的话,那appdelegate.m代码看起来改起来可谓是生无可恋了。作为一个有思想的程序员,能忍吗?肯定不能忍!下面我们就探索iOS极光推送的插件式地集成和降低与appdelegate.m的耦合的方法,达到优雅地集成极光推送。

准备工作:

一、苹果开发者中心生成证书

前往苹果开发者中心生成证书或者使用里面的keys

生成推送证书的步骤我就不说了,现在还不会生成推送证书的话你就站墙角唱国歌去吧,顺便思考下自己的人生。

我这里主要讲一下前段时间苹果刚出来的keys的使用:

首先认识一下keys

翻译过来的意思是:为您的通知请求使用Apple Push通知服务。所有应用程序都使用一个键。Oh,my God! Very good呀!

使用keys有两个好处:

1、同一个开发者账号可以使用一个 key,避免了每一个app生成一个开发推送证书和一个上线的推送证书的问题。

2、该key一旦生成,永不过期,惊不惊喜,意不意外,避免了推送证书一年生成一次的问题。

生成完点开需要Key ID和Team ID到时候极光后台要用。

二、极光推送官网创建应用

选择Token Authentication,上面的证书配置就不用填写了,填写下面的Token Authentication 配置,填写Bundle ID,这个填写完是不能更改的,想更改的话只有在极光推送官网删除应用重新创建,再填写上面准备好的Key ID和Team ID。以上准备工作就算做完了。另外获取极光推送设置的应用的AppKey,项目中要用的。

三、自己的app里面添加极光推送的代码

新建AppDelegate的分类文件,如上图所示:

其中.h文件暴露出3个方法,一个初始化方法,在appdelegate里面调用,下面两个是程序在前台和程序进入后台的时候消失的处理,从appdelegate.m中分离,在自己写的分类中实现,达到分离的效果。

.m文件中就是将之前在appdelegate.m中写的初始化方法,处理消息在前台,后台,程序杀死之后的方法,消息红点,iOS各种版本的代理方法,这里我就不一一介绍了,下面demo里面自己看吧,没啥难的。

我要说的是,最主要的是归结到我写的一个封装方法的处理:

如上图所示,无论是iOS 10以上,还是iOS 10一下,程序在前台、后台还是程序杀死的时候的收到消息的处理都在这个里面处理,跟后台商量好他们推送的消息的类型区分不同的消息,然后做相应的收到消息的跳转处理,就哦了。上面我写了一个枚举类型,区分不同的消息,大家可以根据自己的app消息类型修改枚举类型。

设置标签别名

1、在登陆注册的时候,拿到userID设置标签别名

//设置设备别名

    [JPUSHService setTags:[NSSet setWithObject:userId] completion:^(NSInteger iResCode, NSSet *iTags, NSInteger seq) {

        DLog(@"%tu,%@,%tu",iResCode,iTags,seq);

    } seq:0];

2、在退出登录的时候清空设备别名

 //清空设备别名

[JPUSHService cleanTags:^(NSInteger iResCode, NSSet *iTags, NSInteger seq) {

        DLog(@"%tu,%@,%tu",iResCode,iTags,seq);

    } seq:1];

最后,呈上Demo:       Demo

四、测试

最后到极光推送后台,测试自己的推送效果。

总结:懒惰会让程序员想到一些更好的方案去解决手上的问题,往往的结果都是节省了很多体力劳动,以及达到同样的需求用的是最优雅最便捷的方式。

以上有问题,欢迎大家批评指正,共同学习,共同进步。

相关文章

  • iOS 优雅插件地集成极光推送,设置标签别名

    前言: 推送功能是每一个App都要有的功能,对于我们写的项目的通用框架来说是必须要添加进去的。但是之前都是大部分都...

  • wrs-jpush极光推送原生app插件

    前言 wrs-jpush是极光推送原生app插件 功能 别名alias、标签tag的设置 权限通知判断、跳到通知权...

  • iOS-iOS10极光推送的使用

    1、首先先配置好推送证书,传到极光。极光推送->iOS证书设置指南极光推送->iOS SDK集成指南(XCode8...

  • iOS-极光推送的使用

    1、首先先配置好推送证书,传到极光。极光推送->iOS证书设置指南极光推送->iOS SDK集成指南(XCode8...

  • 极光推送集成开发

    1.极光推送集成与设置 极光推送地址①注册极光推送账号。②在应用管理内按照步骤创建APP。③找到“文档——iOS—...

  • iOS极光推送设置别名

    一。如何设置标签或者别名 消息推送,有时候只想推送给指定的人或者指定的版本,那么这时候我们就需要对设备设置标签或者...

  • ReactNative开发-集成极光推送 jpush-react

    前言 极光推送官方有提供支持React Native版本的插件(ios和android),可以快速集成推送功能。目...

  • HBuilder 第三方插件开发

    本人最近开发了 HBulider 集成极光推送(JPush)的插件,鉴于 HBuilder 官网上缺少 iOS 的...

  • 极光推送——别名设置

    1.使用别名,光网中进行别名推送——(下面会有字段设置),这跟后台一样的处理,所以完成不需要管后台如何推,使用这就...

  • 2022-03-01

    极光推送插件 注:目前极光推送的功能只有别名推送,后续如需增加其他功能在做添加操作 原生插件暴露给js的id为:v...

网友评论

本文标题:iOS 优雅插件地集成极光推送,设置标签别名

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