极光:手机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参数一致就行了。
相关文章
|
11天前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
884 14
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
7天前
|
Android开发
陪玩APP推送配置:陪玩系统手机锁屏收不到推送?可能是这些原因!解决方案来了!
陪玩系统手机锁屏收不到推送可能由推送服务配置不当、手机系统设置限制、网络不稳定或应用权限不足等原因导致。解决方案包括:确保推送服务正确配置,调整手机后台管理设置,保持网络连接稳定,授予应用必要权限。若问题持续,建议联系客服获取帮助。
|
4月前
|
数据采集 数据挖掘 UED
电商平台手机销售数据采集与分析
随着科技的进步,尤其是手机的普及,国民生活变得更加便捷。现今,手机销售已从传统的实体店模式转向电商平台,这一转变加剧了市场竞争,给手机厂商带来了新的挑战。为了应对挑战,电商平台越来越重视手机销售情况与用户体验,利用数据分析成为了解市场趋势的关键手段。本章节聚焦于某电商平台的手机销售及售后数据收集,通过深入分析商品销售状况与用户反馈,旨在探索有效的营销策略,助力电商平台与手机行业的共同进步。
134 1
|
26天前
|
缓存 前端开发 IDE
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
27 0
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
1月前
|
移动开发 开发框架 小程序
轻松搭建婚恋交友系统源码,H5/小程序/APP自动适配,智能匹配恋爱交友平台快速落地
婚恋交友系统涵盖在线交友、线下活动、专业服务、社交娱乐等,满足用户多样化需求。系统设计简洁易用,提供实名认证、多注册方式及安全保护,确保用户隐私和数据安全。功能丰富,支持图文展示、筛选匹配、聊天互动、虚拟礼物等,提升互动趣味性。平台可分类管理用户、审核信息、智能推荐,优化用户体验。基于TP6+Uni-app框架,实现跨平台同步,支持二次开发,适应不同市场需求。 [了解更多](https://gitee.com/multi-customer-software/jy)
|
1月前
|
消息中间件 监控 小程序
电竞陪玩系统架构优化设计,陪玩app如何提升系统稳定性,陪玩小程序平台的测试与监控
电竞陪玩系统架构涵盖前端(React/Vue)、后端(Spring Boot/php)、数据库(MySQL/MongoDB)、实时通信(WebSocket)及其他组件(Redis、RabbitMQ、Nginx)。通过模块化设计、微服务架构和云计算技术优化,提升系统性能与可靠性。同时,加强全面测试、实时监控及故障管理,确保系统稳定运行。
|
2月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
179 3
为什么不加盟线下陪玩APP小程序平台,而是自建平台?
自建线下陪玩APP平台相比加盟,能避免利润抽成,确保所有收益归己,同时提供更高的运营灵活性和稳定性,不受制于合同限制或总平台决策变动,更适合追求长期发展的创业者。
|
4月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
1731 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
5月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
151 12

热门文章

最新文章

  • 1
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
  • 3
    【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 5
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 6
    【Azure Function】Function App出现System.IO.FileNotFoundException异常
  • 7
    【Azure Logic App】使用MySQL 新增行触发器遇见错误 :“Unknown column 'created_at' in 'order clause'”
  • 8
    阿里云APP备案流程图以及备案所需材料整理,跟着教程一步步操作
  • 9
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 10
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈