unipush+java+个推实现app消息推送

“ 你现在的气质里,藏着你走过的路,读过的书,和爱过的人。 ”


整体还是比较简单地,就是有一些需要注意的地方,很多问题官方文档里面也写了,这里总结一下
对于安卓,谷歌本来有专门的推送通道,但是无奈被墙,所以各个大厂就自己各搞一套,那我们开发者如果每个都去开发一套成本就太高了,所以就需要借助第三方通道,让他们帮我们处理,目前比较火的有个推,极光等等,由于前端使用unipush,它使用的是个推,所以后台就使用的个推。

整体思路:

unipush使用指南:https://ask.dcloud.net.cn/article/35622
首先需要开通unipush,
然后需要获取cid,cid的作用就是标识是哪一个终端,也就是标识app在那个手机上面,后面推送消息就是根据这个cid来推送。
需要将项目打包成app,使用Hbuilder调式是不行的,需要真机安装app才可以获取到cid
获取cid的方法:https://ask.dcloud.net.cn/article/34

document.addEventListener('plusready', function(){  // 页面加载时触发  var pinf = plus.push.getClientInfo();  var cid = pinf.clientid;//客户端标识  
}, false );

然后已经获取到cid了,了解一下整体架构,看官网的这张图:
在这里插入图片描述
整体流程大概就是:

  • 前端拿到cid,一般是在登录成功后便将cid给后台,后端将cid和用户绑定,标识那个用户的app是那个,用于推送
  • 比如需要推一条消息给李四
  • 前端调接口将需要推送的信息发送给后端,后台拿到需要推送的信息,然后去用户表找到李四的cid,然后后端将消息发给个推的服务器
  • 个推的服务器拿到后,经过一顿猛操作将消息用不同的方式推送给app
  • 如果李四的app现在在使用,可能会走个推的专有通道将消息推送给app,如果李四的app离线,那就只有走厂商通道进行推送了,厂商的通道的配置官网里面也写了,个人去试了一下,就是需要将你的app发送到各大手机厂商的平台,申请流程个人感觉十分的繁琐。。。
  • 然后app接受到消息,如果后台使用普通的通知模板,那么unipush会自动给我们推送,然后会在通知栏弹出推送,如果后台使用透传的方式,unipush只负责传递消息,不会做其他的任何处理
    在这里插入图片描述

后台使用个推的开发文档:http://docs.getui.com/getui/server/java/guide/
不难,看看就懂了。
实例代码:仅供参考

/*** 推送消息*/public Map<String, Object> pushMessage(Integer userId, String remark) {IGtPush push = new IGtPush(URL, config.getPushAppKey(), config.getPushMasterSecret());// 使用透传模板TransmissionTemplate template = new TransmissionTemplate();// 1:收到通知直接激活app,2:客服端自行处理template.setTransmissionType(2);// 透传内容template.setTransmissionContent(remark);template.setAppId(config.getPushAppId());template.setAppkey(config.getPushAppKey());String intent = "intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;package=xxx;component=xxx;end";Notify notify = new Notify();// 通知栏显示标题notify.setTitle("您有新的任务下达");// 通知栏内容notify.setContent(remark);notify.setIntent(intent);// 设置第三方通知template.set3rdNotifyInfo(notify);SingleMessage message = new SingleMessage();message.setData(template);// 设置消息离线message.setOffline(true);// 离线消息有效时间为7天message.setOfflineExpireTime(1000 * 3600 * 24 * 7);//添加要推送的终端Target target = new Target();MstUserPo userPo = userDao.selectByPrimaryKey(userId);if (userPo.getPushId() != null) {target.setAppId(config.getPushAppId());target.setClientId(userPo.getPushId());}else {return null;}IPushResult result;Map<String, Object> response = null;// 执行推送try {result = push.pushMessageToSingle(message, target);} catch (RequestException e) {e.printStackTrace();result = push.pushMessageToSingle(message, target, e.getRequestId());}if (result != null) {response = result.getResponse();}return response;}

intent 里面的包名换成你自己的
需要注意的是:如果使用NotificationTemplate 也就是普通模板,如果推送的app在线,用户点击推送消息是不会跳转到app的,他只对沉默用户有用,所以建议使用透传摸版。
其实我个人理解个推文档里面除了NotificationTemplate 其他的应该都算是透传,所以模板应该都是可以用的,我只用了TransmissionTemplate 。
前端监听到发过来的透传消息后再创建一个本地消息就可以控制点击消息跳转到哪里了。官方文档:https://ask.dcloud.net.cn/article/34

  • 监听接收透传消息事件
// 监听接收透传消息事件
plus.push.addEventListener('receive', function(msg){  // 有消息推送,创建本地通知栏消息void plus.push.createMessage( msg.content, msg.payload, {}); 
}, false);
// 监听系统通知栏消息点击事件  
plus.push.addEventListener('click', function(msg){  // 跳转到指定也页面  
}, false);  

createMessage创建本地可以传入参数,默认是响铃,声音使用系统提示音,需要的话去官方文档里面查看。
整体过程大概就这样,如果有问题可以留言over
**普通推送和透传只在app在线时生效,离线推送需要借助厂商推送!!!


附上个推客服小姐姐的qq:1302641036,除了技术有点菜之外,其他还行 ~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1381946.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp - App 超详细消息推送功能实现,从 0-1 实现官方 unipush 推送全步骤稳定性毋庸置疑(附带详细的可运行示例源码和注释,保证 100% 完美接入)苹果安卓手机

效果图 网上的教程太乱用不了,无法改造成自己想要的效果。 在uniapp中开发的app(安卓苹果),使用 unipush 官方推送,从0-1实现完整过程及功能开发。 你可以直接复制示例源码,跟着教程一步步配置,注释详细! 准备 消息

Android 项目必备(三十八)-->APP 消息推送

文章目录 前言推送的实现方式1. C2DM2. 轮询3. SMS信令推送4. MQTT协议5. XMPP协议6. 使用第三方平台 Android 中 MQTT 的使用1. 集成2. 具体代码3. 项目地址 前言 今天来讲讲推送这件小事&#xff0c;事虽小&#xff0c;要做好却不容易。 推送难&#xff0c;难于上青天。 我们…

APP消息推送(APP Push)解决方案-服务端工作逻辑和实现

一、APP 推送概述&#xff1a; App推送消息是我们常见的一种app消息提醒方式。 我们的实现需要第三方的支持&#xff0c;实现方式是后台通过接口将Push请求发送至第三方&#xff0c;第三方实现在App所在设备上的推送。 二、APP推送后台处理逻辑&#xff1a; 在与推送平台交互时…

app消息推送的详细实现教程

实现的主要思想 app实现消息推送&#xff0c;利用的是第三方的个推平台&#xff0c;后端将需要推送的内容通过第三方个推服务器传递给手机端。 具体前端打包配置 根据上图可知&#xff0c;采用的打包软件是Hbuilder X,在模块配置的时候&#xff0c;勾选push模块中的uniPush。…

App消息推送的原理

文章目录 1. 基本概念2. iOS和Android消息推送原理对比2.1 iOS2.1.1 基本原理2.1.2 优劣势 2.2 Android2.2.1 基本原理2.2.2 优劣势 3. Android消息推送原理3.1 操作系统有自身的消息推送功能&#xff08;系统级别&#xff09;3.2 三种基本的推送方式&#xff1a;Push、Pull 和…

php实现app消息推送

如何用php实现APP消息推送 现在有很多的消息推送厂商&#xff0c;比如阿里云的消息推送&#xff0c;极光推送&#xff0c;融云的消息推送。他们的原理都是把sdk内置在app里面&#xff0c;达到消息推送的目的&#xff0c;通过一张图来了解一下&#xff0c;看不懂不要紧&#xf…

Android,ios,安卓app推送消息通知,java后台向手机推送app的通知教程

文章目录 一、业务介绍1.1 产品简介1.2 名词解释1.3 消息推送流程 二、应用创建三、客户端 SDK 集成3.1 Android3.2 iOS 四、服务端推送4.1 服务端消息下发流程&#xff08;必读&#xff09;4.2 开发者中心后台4.3 推送代码 五、参数说明 一、业务介绍 1.1 产品简介 个推是商…

App消息推送概述

消息推送介绍 消息推送&#xff08;Push&#xff09;&#xff0c;是指从云端服务器到手机终端的消息推送通道&#xff0c;运营人员可以通过自己产品后台或者第三方推送通道对用户移动设备进行主动的消息推送。通过消息推送&#xff0c;目标用户可以在移动设备通知和状态栏看到…

PushDeer:一种无APP的通知推送解决方案

概述 去年六月&#xff0c;我曾写下一篇博客介绍如何 借助 ServerChan 实现个人微信通知推送&#xff0c;在那篇文章中介绍了 ServerChan 及其使用方法&#xff0c;总的来说&#xff0c;对于简单的通知需求&#xff0c;使用 ServerChan 是非常简单有效的。但是实际使用起来&…

一文让你知道关于App推送那些事

推送相关介绍 在用户未打开App时&#xff0c;服务端向用户推送服务器最新的消息数据&#xff0c;称为推送。消息推送在移动开发中用到的场景非常多&#xff0c;比如典电商类app的商品促销活动&#xff0c;资讯类的app的新闻推送等等。在实际开发中&#xff0c;我们常常会根据产…

关于ISO27701隐私信息安全管理体系介绍

01 什么是ISO27701 ISO27701是对ISO27001信息安全管理和ISO27002安全控制的隐私扩展&#xff0c;全称《安全技术—扩展ISO27001和ISO27002的隐私信息管理—要求与指南》&#xff0c;是ISO标准委员会以ISO 27001为基准&#xff0c;以ISO27552为蓝本&#xff0c;建立发布的隐私…

双向循环链表、dancing links

目录 双向循环链表 力扣 426. 将二叉搜索树转化为排序的双向链表 十字交叉双向循环链表&#xff08;dancing links&#xff09; 精确覆盖问题 dancing links X算法&#xff08;V1递归版&#xff09; POJ 3740 Easy Finding 数独 X算法优化 X算法&#xff08;V2非递归…

jpg照片太大怎么压缩变小?jpg如何缩小图片大小kb?

我们平时在接收过多的jpg格式图片的时候&#xff0c;越大的图片虽然越清晰&#xff0c;但是接收和储存起来就非常不方便&#xff0c;那么有没有什么办法可以将jpg图片压缩呢&#xff1f;其实现在可以通过在线图片处理工具来完成jpg压缩&#xff08;https://www.yasuotu.com/jpg…

html宽度一变小图形就上去,如何把图片大小变小?

我们在布局图片列表时&#xff0c;通常我们要控制图片的高度和宽度这样来达到图片统一。我们在HTML布局时候直接在图片img标签加宽度和高度属性即可控制图片高和宽。 一、html img图片标签高度宽度设置 我们可以直接在图片标签设置宽度width和高度height&#xff0c;这里需要注…

ChatGPT等人工智能编写文章的内容今后将成为常态

BuzzFeed股价上涨200%可能标志着“转向人工智能”媒体趋势的开始。 周四&#xff0c;一份内部备忘录被华尔街日报透露BuzzFeed正计划使用ChatGPT聊天机器人-风格文本合成技术来自OpenAI&#xff0c;用于创建个性化盘问和将来可能的其他内容。消息传出后&#xff0c;BuzzFeed的…

照片怎么转换大小?怎么把图片尺寸变小?

平时在使用QQ截图之后&#xff0c;发现图片尺寸过大不方便上传&#xff0c;该怎么解决图片大小转换问题呢&#xff1f;本文将介绍一款图片改大小&#xff08;https://www.yasuotu.com/size&#xff09;工具&#xff0c;可以在线处理图片尺寸&#xff0c;打开浏览器即可调整图片…

照片大小kb怎么调整变小?

伴随着工作和生活的需要&#xff0c;图片的应用遍及我们生活和工作的方方面面&#xff0c;随之我们的电子设备上面累积的图片文件也越来越多。因为图片使用的场景不同&#xff0c;所以对图片的大小也有不同的要求&#xff0c;那就要求我们学会调整照片大小的方法&#xff0c;会…

如何压缩照片大小-照片无损压缩办法

图片大家都不陌生&#xff0c;于生活于工作我们都能接触到&#xff0c;但并不是原图片什么样&#xff0c;我们都可以直接进行使用的。很多图片的质量虽然特别的高清&#xff0c;但是它的体积也像特别大&#xff0c;这时候无论我们是传输给他人&#xff0c;还是上传到各个社交媒…

C#,数值计算——抛物线插值与Brent方法(Parabolic Interpolation and Brent‘s Method)的计算方法与源程序

using System; namespace Legalsoft.Truffer { /// <summary> /// 抛物线插值与Brent方法 /// Parabolic Interpolation and Brents Method /// </summary> public class Brent : Bracketmethod { public double xmin { get; set…

【Linux操作系统】深入理解Linux系统编程中的open函数

在Linux系统编程中&#xff0c;open函数是一个非常重要的系统调用函数&#xff0c;它用于打开或创建一个文件&#xff0c;并返回一个文件描述符。本文将详细介绍open函数的用法&#xff0c;并给出具体的代码示例。 文章目录 1. 函数原型2. 函数参数2.1 flags参数2.2 mode参数 …