极光:手机APP消息推送平台

简介: 简单来说:极光推送是一个免费的开源的手机APP消息推送平台(类似帅哥美女们常用的购物APP某宝、某东等,一些优惠券消息后台推送到你们手机上)。

01极光推送是什么?


简单来说:极光推送是一个免费的开源的手机APP消息推送平台(类似帅哥美女们常用的购物APP某宝、某东等,一些优惠券消息后台推送到你们手机上)。它集成了包括:SDK给客户端、JPush API给服务端、JPush Cloud服务器代理推送消息。一张图看懂整个逻辑(极光官方):

45fd4d7a12bc88fe3ddd941d3c26937c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

32f78ff9c858888dfe6aa8e1067a72d8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

android和ios的区别在于,ios需使用apple APNS server专用服务代理。



02SDK集成开发(服务端)


1、生成Appkey 和 MasterSecret

关于Appkey 和 MasterSecret 的介绍,这里只作简单说明:极光平台推送到对应的注册APP手机客户端所需要的参数;创建测试用的Appkey和MasterSecret的步骤和操作介绍可以去官网取经,或查阅其他博客文章等,一般作为服务器后台开发是不需要关心这个(客户端androi、ios开发者负责创建)。


2、添加依赖jar包

笔者的项目使用的是SpringCloud微服务架构,自然使用的是Maven仓库。所以,首先需要添加maven依赖


<dependency>            <groupId>cn.jpush.api</groupId>            <artifactId>jpush-client</artifactId>            <version>3.3.9</version>        </dependency>

版本以3.3.9为例,目前最新版本出到3.3.12了,一般不建议使用最新版本,因为最新版本的东西都不太稳定。


3、集成Java SDK推送方法JPush  


//极光推送至App端        String title = record.getTitle();  //标题        String contents = record.getContents();  //内容        if(StringUtils.isEmpty(MasterSecret) || StringUtils.isEmpty(AppKey)){            commonResponse.setCode(MsgReturnCode.APPKEY_MASTERSECRET_EXCEPTION.code);            commonResponse.setMessage(MsgReturnCode.APPKEY_MASTERSECRET_EXCEPTION.message);            return commonResponse;        }        PushResult pushResult = push(String.valueOf(title),contents);        if(pushResult != null && pushResult.isResultOK()){            log.info("针对别名" + title + "的信息推送成功!");            commonResponse.setCode(CommonResponse.SUCCEE);            commonResponse.setMessage("信息推送成功!");            return commonResponse;        }else{            log.info("针对别名" + title + "的信息推送失败!");            commonResponse.setCode(MsgReturnCode.SYSTEM_EXCEPTION.code);            commonResponse.setMessage("信息推送失败!");            return commonResponse;        }
  • 上面的 String title = record.getTitle();  //标题
  • String contents = record.getContents();  //内容
  • 就是推送的某条消息到用户手机上,所要展示的标题和内容。
  • JPushClient 调用集成SDK的推送方法sendPush();
  • 生成极光推送对象PushPayload


/**     * 极光推送方法(采用java SDK)     * @param title     * @param contents     * @return PushResult     */    public PushResult push(String title,String contents){        ClientConfig clientConfig = ClientConfig.getInstance();        JPushClient jpushClient = new JPushClient(MasterSecret, AppKey, null, clientConfig);        PushPayload payload = buildPushObject_android_ios_alias_alert(title,contents);        try {            return jpushClient.sendPush(payload);        } catch (APIConnectionException e) {            log.error("Connection error. Should retry later. ", e);            return null;        } catch (APIRequestException e) {            log.error("Error response from JPush server. Should review and fix it. ", e);            log.info("HTTP Status: " + e.getStatus());            log.info("Error Code: " + e.getErrorCode());            log.info("Error Message: " + e.getErrorMessage());            log.info("Msg ID: " + e.getMsgId());            return null;        }    }


/**     * 生成极光推送对象PushPayload(采用java SDK)     * @param title     * @param contents     * @return PushPayload     */    public PushPayload buildPushObject_android_ios_alias_alert(String title,String contents){        return PushPayload.newBuilder()            .setPlatform(Platform.android_ios())            .setAudience(Audience.all())            .setNotification(Notification.newBuilder()                    .addPlatformNotification(AndroidNotification.newBuilder()                            .addExtra("type", "infomation")                            .setTitle(title)                            .setAlert(contents)                            .build())                    .addPlatformNotification(IosNotification.newBuilder()                            .addExtra("type", "infomation")                            .setAlert(contents)                            .build())                    .build())                .setOptions(Options.newBuilder()                    .setApnsProduction(false)//true-推送生产环境 false-推送开发环境(测试使用参数)                    .setTimeToLive(90)//消息在JPush服务器的失效时间(测试使用参数)                    .build())            .build();    }

.setPlatform(Platform.android_ios())  

  设置要推送的客户端的平台android、ios;可以单独设置android或ios;我这里就都设置了。

  .setAudience(Audience.all())

  设置要推送的目标群用户,按照各自业务区分需要,推送给目标群用户,我这里设置全部用户了。


.addPlatformNotification(AndroidNotification.newBuilder()        .addExtra("type", "infomation")        .setTitle(title)        .setAlert(contents)        .build()).addPlatformNotification(IosNotification.newBuilder()        .addExtra("type", "infomation")        .setAlert(contents)        .build())

设置安卓和ios平台的推送消息标题和内容。整个后台服务api接口开发就结束了,看着非常简单;因为极光本身集成了强大的SDK供用户使用,我们只需要引入jar依赖即可调用SDK中的方法,还有另一种单独调用极光服务的api开发,那个会稍微复杂点,当然对其原理的理解也会更加深入点。


03安卓和ios客户端对接



  • 面已说了需要创建appKey和masterSecret。服务端跟客户端对应同一套参数,这样保证推送消息一致。
  • 跟客户端的联调开发,只强调保证appKey和masterSecret参数一致就行了。
相关文章
|
1月前
|
机器学习/深度学习 数据采集 人工智能
通义实验室Mobile-Agent-v3开源,全平台SOTA的GUI智能体,支持手机电脑等多平台交互
近日,通义实验室MobileAgent团队正式开源全新图形界面交互基础模型 GUI-Owl,并同步推出支持多智能体协同的自动化框架 Mobile-Agent-v3。该模型基于Qwen2.5-VL打造,在手机端与电脑端共8个GUI任务榜单中全面刷新开源模型性能纪录,达成全平台SOTA。
337 2
|
4月前
|
Java
照片一键生成眨眼视频app,手机照片一键生成眨眼动图,通过JAR代码实现效果
这是一个自动生成眨眼GIF动画的Java程序,包含主程序处理、图像变形和GIF生成三个模块。输入照片路径,自动识别人脸眼睛位置,生成闭眼、半闭眼等多帧图像,并合成为眨眼动效GIF文件。
|
3月前
|
移动开发 前端开发 JavaScript
鸿蒙NEXT时代你所不知道的全平台跨端框架:CMP、Kuikly、Lynx、uni-app x等
本篇基于当前各大活跃的跨端框架的现状,对比当前它们的情况和未来的可能,帮助你在选择框架时更好理解它们的特点和差异。
331 0
|
10天前
|
小程序 搜索推荐 JavaScript
引入小程序平台对app有啥好处
引入小程序平台对app有啥好处
31 1
|
2月前
|
编解码 数据安全/隐私保护
手机录制脚本自动执行, 免root屏幕录制脚本,自动脚本精灵app【autojs】
自动创建保存目录确保路径存在 动态生成带时间戳的文件名避免重复
|
4月前
|
安全 测试技术 开发者
银行转账模拟器手机版app, 银行转账凭证生成器app,用autojs实现效果【逼真效果】
本内容展示了一套基于Auto.js的银行APP自动化测试脚本和框架,用于学习和研究移动应用测试技术。脚本涵盖登录、转账等功能测试
|
4月前
|
消息中间件 缓存 小程序
婚恋交友相亲公众号app小程序系统源码「脱单神器」婚恋平台全套代码 - 支持快速二次开发
这是一套基于SpringBoot + Vue3开发的婚恋交友系统,支持微信公众号、Uniapp小程序和APP端。系统包含实名认证、智能匹配、视频相亲、会员体系等功能,适用于婚恋社交平台和相亲交友应用。后端采用SpringBoot 3.x与MyBatis-Plus,前端使用Vue3与Uniapp,支持快速部署和二次开发。适合技术团队或有经验的个人创业者使用。
279 8
|
8月前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
5745 80
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
9月前
|
缓存 前端开发 IDE
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
210 0
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈

热门文章

最新文章