首页 > 其他分享 >uniapp 消息推送

uniapp 消息推送

时间:2023-06-29 14:12:38浏览次数:35  
标签:uniapp App 消息 手机 后台 服务器 推送

1.前言

  • 作为一个非原生App的开发者,对于手机系统的推送机制了解是是非有限的,只有了解清楚这些机制,后期的开发才会少踩很多坑,本文将对推送机制逻辑进行一个简单的梳理与记录

2.推送流程

  • 推送流程1.0:后台服务器 -> 推送服务器(第三方) -> 手机App
  • 推送流程2.0:后台服务器 -> uni-cloud -> 推送服务器(第三方) -> 手机App

3.推送服务器

  • 为什么后台不直接推送消息给手机App,而是要转交给第三方推送服务器呢?这里举两个例子:
  • 1.假设有一条消息需要同时推送给10000个人,那么这条消息就有10000个状态,推送成功的人将不再推送,而推送失败的人将会一直持续推送,直到成功为准,所以需要写一套专门的算法来处理这套逻辑
  • 2.消息需要推送给具体的某台手机,那么每个人就需要为每台手机分配一个独一无二的标识,根据这个标识定位到目标手机,然后才能进行推送,而给每台手机分配一个独一无二的标识,也需要一套算法
  • 3.手机App想要实时接受消息,必须开启一个专门的进程实时在线,这个内嵌在App内部的进程也需要进行开发
  • 就像淘宝卖家不会自己组建一个物流团队一样,一般的软件开发者也没必要去开发这套逻辑,第三方软件推送服务商提供专门的推送服务,无论研发能力,产品功能与稳定性都远超自己开发,需要推送时直接选择他们即可

3.App的运行状态

  • App在线状态:第三方推送服务商的消息能正常推送
  • App离线状态:第三方推送服务商无法推送,此时再想必须依靠系统底层的能力,手机厂商像小米,华为等都完成了系统级别的推送支持,但是他们各自为阵,需要每个厂家进行适配,所谓适配,就是每个厂家都开通开发者账号进行注册
  • App现状1:为了省电,手机系统会对通常后台程序进行清理查杀,很少有App能常驻后台
  • App现状2:现在的手机系统严格控制App自启动,链式启动,App无法像之前一样通过流氓手机强制驻留后台,所以App现状就是,只有App前台展示期间,或者刚退回桌面的前几分钟是在线状态,其余时间都是离线状态

4.安卓App如何保持在线状态

  • 调整App省电策略:以MIUI为例,长按App图标 => "应用信息" => "省电策略" => "无限制"
  • 允许自启动:以MIUI为例,长按App图标 => "应用信息" => "自启动" => "开启"
  • 原生安卓系统:手持pda搭载原生安卓系统,不会杀后台

5.消息类别

  • 消息类别分为通知消息和透传消息
  • 通知消息:由系统接管,在通知栏弹出消息,点击后启动App,支持在线与离线
  • 透传消息:消息直达App,只支持在线,App可接收后自动创建本地通知

标签:uniapp,App,消息,手机,后台,服务器,推送
From: https://www.cnblogs.com/OrochiZ-/p/17514078.html

相关文章

  • 消费者消息确认
    RabbitMQ是**阅后即焚**机制,RabbitMQ确认消息被消费者消费后会立刻删除。而RabbitMQ是通过消费者回执来确认消费者是否成功处理消息的:消费者获取消息后,应该向RabbitMQ发送ACK回执,表明自己已经处理消息。设想这样的场景:-1)RabbitMQ投递消息给消费者-2)消费者获取消息后,返回ACK给......
  • RabbitMQ消息持久化
    我们看下之前启动idea测试消息发送的时候在后台生成的一条消息,现在已经在消息队列里面还没有被消费。 现在我们重启下RabbitMQ,执行linux命令:dockerrestartmq看上图实时显示的错误信息,失去连接了,接下来刷新这个页面,可以发现这个对象没有了。 说明rabbit消息并不会持久化,不......
  • 谷粒商城项目篇12_分布式高级篇_购物车功能、消息队列RabbitMQ
    目录购物车模块vo的编写编写interceptor绑定user-key线程共享数据购物车商品的增加添加完成重定向避免刷新页面重复提交购物车商品的增删改查消息队列RabbitMQ场景理解概述docker安装RabbitMQ整合SpringBoot消息确认机制一、购物车模块需求描述在线购物车:登录状态添......
  • 如何解决MQTT消息积压
    什么是消息积压?大量消息被堆积在broker端,没有被消费。为什么会消息积压?宏观角度主要原因是:producer端生产速度>consumer端消费速度。导致producer端生产速度>consumer端消费速度的情况有多种:设计的时候就没有考虑消费速度要大于生产速度,这种情况最不应该。某一时刻......
  • 基于Redis的消息发布和订阅(广播模式)
    最近在优化一个redis的大key问题,原先的同事写法是将所有的配置都放在一个key里面,value是一个map.但是随着配置越来越多,这个map也变得很大,已经影响redis的性能.遂决定将map里面的每个配置单独出来一个key,当有配置变动的时候,通过redis的消息队列通知到其他程序.下面......
  • Python全栈工程师(23:消息队列RabbitMQ)
    谁能用通俗的语言解释一下什么是RPC框架?深入浅出RPC-浅出篇深入浅出RPC-深入篇1小时写一个分布式系统基础框架(一个java实现帮助理解RPC)RabbitMQ消息队列安装 http://www.rabbitmq.com/install-standalone-mac.html安装pythonrabbitMQmodulepipinstallpikaoreasy_......
  • maven 推送远程仓库deploy
    pom配置<distributionManagement><repository><id>maven-private</id><name>maven-private</name><url>http://ip:8081/repository/maven-private/</url></repository></distributionManagement>......
  • Uniapp下GoEasy通知栏推送不工作问题排查记录
    我们是uniapp开发的app,项目中的系统消息推送使用的是GoEasyWebsocket实时推送,上线一段时间后,客户反馈说,当app没有在前台运行时也需要想办法通知用户一些重要的系统通知。那么此时通知栏推送就需要集成了。集成通知栏推送很麻烦,国内一些公司做了一些插件来帮我们打通app跟厂商之......
  • uniapp,微信小程序点击按钮打开地图进行导航
    uniapp示例:<viewclass="order-contact-item"style="width:50%;text-align:center;"@tap="openMapNavigation">导航商家</view> //js函数打开导航 openMapNavigation(){ varthat=this; uni.getLocation({ type:'g......
  • SAP ABAP 动态结构实现发送企业微信应用消息
    企业微信官方接口:应用支持推送文本、图片、视频、文件、图文等类型。请求方式:POST(HTTPS)请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN 大概思路:1.封装调用企业微信函数SE37:ZWECHAT_SEND_MESSAGE_MSGTYPE 注:   a.  ......