unipush2统一推送uni

uni-push是DCloud推出的、全端的、云端一体的统一推送服务。

push,指服务器主动向客户端发送消息的技术。无需客户端持续轮询服务器,即可获得即时数据。

轮询有很多弊端:1)客户端应用必须实时在线;2)手机端耗电严重;3)服务器负载高且浪费资源

提醒:web浏览器的webnotification其实是一个本地通知栏功能,浏览器厂商没有提供push通道。

当客户端在线时,push通过socket协议实现。当客户端离线时,服务器找不到客户端,开发者无法自己实现推送,只能依托手机操作系统、小程序底层提供的离线消息推送,调用指定的手机厂商或小程序厂商的服务器接口来发送消息。

所以一个push系统需要3部分协作:开发者的业务服务器+专业push服务器+开发者的客户端应用。

其主要流程是:

如果开发者把上述每个平台的客户端和服务器的SDK都对接一遍,还自己处理没有push服务的中小品牌手机,那过于困难了。所以业内有专业的推送服务厂商把各种手机厂商的通道封装成一套统一的API,如个推(属于上市公司每日互动);同时这些三方专业推送厂商还提供了高速socket通道。当应用在线时,也可以直接通过socket下发消息。否则开发者需要写很多判断代码、搭建socket服务器、处理在线时和离线时各种差异。

DCloud与个推(A股上市公司每日互动)深度合作,为uni-app的开发者提供了比传统方案便利甚多的统一推送方案uni-push2,利用云端一体的优势,同时提供基于uniCloud的push服务器和基于uni-app的push客户端,两者高效协同,极大的简化了push的使用。

注:uni-push的服务器稳定性是由阿里云serverless、腾讯云serverless、个推来保障的,都是日活过亿的上市公司,无需顾虑稳定性。

如下图所示:首先开发者的uniCloud应用服务器向uni-push服务器发送push消息,然后

总结下uni-push提供的功能:

注意:app申请创建通知栏消息、web申请弹出通知,均会由操作系统或浏览器自动弹窗询问用户是否同意。小程序下需要手机用户主动发起订阅行为,才能送达消息。

uni-push即降低了开发成本,又提高了push送达率,还支持全平台,并且免费,是当前推送的最佳解决方案。

uni-push本身并不收费,实际使用中需要依赖uniCloud云服务,而uniCloud价格很实惠:

可见价格之低,几乎可以忽略不计。

即:最高(1*0.0133+3*0.015)/10000=0.00000583元/每次(注:给你的应用的所有注册用户群发消息算一次)

有了uni-push,开发者不应该再使用其他push方案了。但我们发现很多开发者有误解,导致还在错误使用其他推送。

按照国家法律要求,所有提供云服务的公司在用户使用云服务时都需要验证手机号。

关联服务空间说明:uni-push2.0需要开发者开通uniCloud。不管您的业务服务器是否使用uniCloud,但专业推送服务器在uniCloud上。

开通完成后,后续仍可以在这里修改以上信息。

开通App的完整流程较多,但开通web和小程序的流程比较简单,即开即用。可以快速将uni-app项目运行到浏览器或小程序体验。

仅APP端支持,当应用被用户关闭,或者运行到后台时,手机厂商为了省电或释放内存,会终止App后台联网。

消息将通过不会离线的手机厂商通道,下发到手机系统推送服务模块;

此时客户端会自动创建通知栏消息,展示在系统消息中心(如图所示)但客户端监听不到消息内容;当用户点击通知栏消息后,会将APP唤醒此时APP才能监听到消息内容。

当应用在线时,不会创建“通知栏消息”,此时客户端会立即监听到消息内容。

如果你希望当应用在线时,也通过“通知栏消息”来提醒用户;可以通过以下两种方式实现:

个推的客户端类型是仅根据使用的sdk类型来判断的,分为两类:

uni.getPushClientId({success(res){console.log(res);},fail(err){console.log(err)}})注意:此时由于运行的标准基座中,不包含uni-push模块,如果运行会报错,不用着急继续往下操作

在manifest.json中配置完之后,需要重新编译项目,即:点击如图重新运行按钮

uni-push在web和小程序端就是个websocket;各家小程序平台,均要求在小程序管理后台配置小程序应用的联网服务器域名,否则无法联网。

根据下表,在小程序管理后台设置socket合法域名。下表的域名均为个推自有域名,并非DCloud所属域名。

示例代码:

APP端真机运行注意:

而uni-push2.0,开发者无需关心证书、签名、服务器端文档,使用简单。云函数通过uni-push服务端sdk,即uni-cloud-push的API即可直接执行uni-push所有操作。

uni-push的服务端sdk的体积不小,没有内置在云函数中。在需要操作uni-push的云函数里,开发者需手动配置uni-cloud-push扩展库。(uniCloud扩展库,是uniCloud自带API中不常用且包体积较大的部分,被独立为扩展库,可以由开发者自行选择是否使用该扩展库)

下面是一个开启了uni-cloud-push扩展库的云函数的package.json示例,注意不可有注释,以下文件内容中的注释仅为说明,如果拷贝此文件,切记去除注释

{"name":"test","version":"1.0.0","description":"","main":"index.js","extensions":{"uni-cloud-push":{}//配置为此云函数开启uni-cloud-push扩展库,值为空对象留作后续追加参数,暂无内容},"author":""}注意:扩展库依赖3张opendb表:opendb-tempdata,opendb-device,uni-id-device。公测版uniCloud,执行扩展库会自动创建。如果你使用的是uniCloud正式版需要自己创建这3张表。

云函数中调用uni-cloud-push扩展库的sendMessage方法,向客户端推送消息

//简单的使用示例'usestrict';constuniPush=uniCloud.getPushManager({appId:"__UNI__XXXXXX"})//注意这里需要传入你的应用appId,用于指定接收消息的客户端exports.main=async(event,context)=>{returnawaituniPush.sendMessage({"push_clientid":"xxx",//填写上一步在uni-app客户端获取到的客户端推送标识push_clientid"title":"通知栏显示的标题","content":"通知栏显示的内容","payload":{"text":"体验一下uni-push2.0"}})};在云函数文件目录右键(或按快捷键ctrl+r)->运行-本地云函数,此时你的客户端将收到推送消息(应用关闭时为通知栏消息,在线时代码监听到推送消息)

如果按步骤操作完毕,此时你运行起来的uni-app客户端就会打印出“收到推送消息:xxxx”。如遇异常,可以重新运行一遍。

上一章,演示了基于“客户端推送标识”的消息推送,仅为方便理解和体验;在业务开发中,通常是指定消息的接收人,而不是某个设备。

注意

以上内置逻辑,在uni-id-pages下,会自动判断是否启用push模块自动执行;但uni-id-pages-x下,需手动在:/uni_modules/uni-id-pages-x/init.uts导入autoReportPushClientId模块。

THE END
1.QQ在线传文件,高效便捷的文件传输新选择电源摘要:QQ在线传文件是一种高效便捷的文件传输方式。用户可以通过QQ聊天窗口直接发送和接收文件,实现快速的文件传输。这种方式不仅简单易用,而且传输速度较快,广泛应用于个人、企业和组织之间的文件共享和交换。QQ在线传文件已成为现代通讯中不可或缺的一部分。 http://m.zj-xy.net/post/21455.html
2.QQ中的4G在线标志,技术原理与含义解析五金交电在QQ中,用户的网络状态标识是判断其是否在线以及当前网络状况的重要依据,这些状态标识包括“在线”、“离线”、“忙碌”、“隐身”等。“在线”表示用户当前正在使用QQ,且网络连接正常;“离线”则表示用户当前未登录或网络断开,而“忙碌”和“隐身”则是用户根据自己的需求设置的特殊状态,近年来,随着智能手机的普及和http://xjxygt.cn/post/15467.html
3.IM小程序能否支持离线消息功能?离线消息的存储和同步需要高效的数据处理能力,如何在有限的资源下优化性能,是一个技术难题。 五、实现离线消息功能的几种方案 1. 基于服务器端存储的方案 原理:服务器端维护一个离线消息队列,当用户离线时,将发送给该用户的消息存入队列;用户上线后,从队列中取出消息并推送。 https://www.huanxin.com/news/13323
4.离线发送文件和在线发送文件有区别吗?在线发送文件与离线发送文件的区别是:一、所指对象不一样 平时所说的在线发送文件必须要接收双方同时在线,就相当于你在玩电脑,另外一方也得在玩电脑或者手机,这样才可以在线发送;而离线发送文件是不需要接收方同时在线的。二、时间不一样 在线发送文件必须要接收双方同时在场,离线发送文件是可以在接收https://zhidao.baidu.com/question/699573959094688004.html
5.在线发送和离线发送的区别爱问知识人区别:在线发送需要双方都在线,离线发送不需要接收方在线,对方离线或者隐身也可以发送;在线发送需要及时https://iask.sina.com.cn/b/new2I0a4geK5Qx.html
6.qq离线文件如何接收怎样发送qq离线文件2、在弹出来的下拉窗口选择“发送离线文件” 3、选择要发送的文件,点击确定,文件开始传送。 4、传送完成之后,聊天窗口提示离线文件上传成功,此时作为接收方也会收到提示。 QQ离线文件和在线文件有什么区别 1、文件处理方式不同 在线传送:文件是点对点的,就是文件的发收双方。 https://www.tianqi.com/toutiao/read/103521.html
7.qq离线qq离线和离线请留言有什么区别离线和离线请留言有什么区别呢?主要有以下几点区别。 离线是指我们的QQ账号处于离线状态,我们无法接收到其他人发送的消息,而离线请留言是指我们给对方发送消息时,对方不在线,我们选择将消息保存在对方的聊天记录中,等到对方上线后才能看到,可以说,离线请留言是一种主动行为,而离线则是一种被动状态。 http://www.m.0632fc.cn/news/29442.html
8.常见问题和群组有什么区别? 一个聊天室支持100万人。聊天室和群组最大的区别在于,聊天室的消息没有推送通知和离线保存,也没有常驻成员的概念,只要进入聊天室即可接收消息,开始聊天, 一旦退出聊天室,不再会接收到任何消息、通知和提醒。注意:进入聊天室会自动获取最近50条消息,客户端目前不支持创建聊天室 实时音视频怎么收费?https://docs.jiguang.cn/jmessage/guideline/faq
9.第五次全国经济普查专项试点数据处理问题解答(一)3.清查调查员和普查调查员账号注册有何要求? 答:清查调查员注册的手机号码须在单位清查平台的调查员管理功能中提前预置。普查调查员注册的手机号码需要在普查登记数据处理平台提前预置,否则无法进行验证码的发送。 4.普查阶段对自主填报的用户有什么要求? https://www.yueyang.gov.cn/tjj/22746/22753/67182/67186/content_2080266.html
10.理解iOS消息推送一文就够:史上最全iOSPush技术详解4)UNPushNotificationTrigger 表示通知是从Apple推送通知服务发送的对象。 如果以时间间隔(TimeInterval)来触发,则设置触发器代码为: 推送本地push的代码为: 5、在线、离线(远程)push流程 5.1 在线push流程 在线push相对简单,由于是内部实现,具体流程如上面所示。 https://www.songma.com/news/txtlist_i2865v.html
11.聊天在线与离线传输文件qq转离线发送和转在线发送有区别吗微信只支持一种文件发送方式,就是发送方把文件发到文件存储服务,然后接收方从文件服务器进行下载。然而,在古老的QQ软件,是支持在线传输和离线传输(微信模式)。 1.离线传输 称之为离线传输,其实是相对与在线传输而言。在qq的概念里,离线传输就是及时对方不在线,仍然可以向其发送文件。 https://blog.csdn.net/littleschemer/article/details/144161451
12.什么是QQ离线文件什么是QQ在线文件腾讯微信最近不少人有点迷糊这类问答,其实离线文件和在线文件的区别是在线发送文件是点对点的,就是文件的发收双方。离线文件是发送方先将文件上传至服务器,待接收方上线后会收到文件接收通知,直接从服务器进行下载。 什么是QQ离线文件: 1、离线文件是发送方先将文件上传至服务器;http://www.puhuahui.com/4363.html
13.qq离线是退出账号了吗?离线和退出有什么区别 离线和退出在功能上有一些差别。当你选择退出QQ时,你的账号会完全退出,无法接收和发送消息。而选择离线则不同,你的账号依然登录,只是临时关闭了消息接收功能。 当你处于离线状态时,其他好友并不能把你从他们的好友列表中删除,因为虽然你不在线,但你的状态仍然是存在的。 https://www.xiedaoicec.com/2e419613ecf8b26e.html
14.qq离线请留言什么意思(qq显示的离线请留言和离线有什么区别)今天来给大家分享一下关于qq离线请留言什么意思的问题,以下是对此问题的归纳整理,让我们一起来看看吧。 qq离线请留言什么意思 qq离线请留言的意思是好友不在线,但是已经设置接收离线消息了,即使不在线也可以收到;但不超过24小时没有登录QQ。QQ离线的意思是好友不在线,且超过24小时没有登录QQ。 http://www.wengnai.com/html/706009.html
15.千牛挂起和离线的区别,淘宝客服挂起有影响吗?千牛离线:千牛离线状态则表示客服不在线或者不可接受用户消息。在这种状态下,用户发送的消息将无法直接送达客服,需要等待客服上线后才能收到回复。通常情况下,客服处于离线状态可能是因为暂时离开工作岗位,或者已经下班休息。 总的来说,千牛挂起和离线的区别在于客服是否能够接收用户消息和进行回复,挂起表示客服能够接收消息https://www.kaitao.cn/article/20240402122913.htm
16.王者荣耀里怎么给好友发消息又如何向不在线的好友发送消息王者荣耀通过数年的运行,游戏内容上已经臻至化境,完全可以媲美端游的各项板块,不过新手玩家在进入游戏后,会遇到一系列问题,比如怎么给在线的微信好友发消息,不在线的好友是不是不能发送离线消息,其实这些当然都是可以的! 王者荣耀给好友发消息玩法: 玩家点击进入王者荣耀主页面,直接点击左下方世界聊天频道,里面有喊话功https://www.qqtn.com/article/article_192864_1.html
17.11家最佳电子邮件服务提供商(2022年免费)通过自动操作保护您的帐户,并远离垃圾邮件发送者的异常活动。 它适用于 iOS 和 android 设备,即使离线也能个性化您的体验。 通过添加用户、管理组别名和设置策略,主控制面板可以轻松配置、自定义和调整您的电子邮件内容。 通过右键单击搜索来自任何发件人的电子邮件,并提供 50 多个键盘快捷键。 https://www.douban.com/note/828512166/
18.一文搞懂:Web3.0钱包是什么?如何创建和使用?如何确保安全?硬件钱包是专用的物理设备,设计用于离线存储加密货币私钥。这类钱包提供最高级别的安全性,因为私钥永远不会暴露在联网环境中,防止黑客攻击。 常见的硬件钱包 Ledger:Ledger钱包(如Ledger Nano S和Ledger Nano X)是市场上最受欢迎的硬件钱包之一,支持多种加密货币。它通过USB或蓝牙与计算机或手机连接,提供高度的安全性https://www.528btc.com/zhuanti/1316042.html
19.质检培训完整操作指南针对自定义添加的质检标准,如果是有规律可循的标准,建议选择规则检出,然后把规则配起来,规则支持买家咨询商品/买家咨询时间/买家消息内容/客服消息发送位置/是否下单/客服回复行为/等多条件。 设置自定义规则检出后,满足规则条件的会话会自动打上扣分项或加分项的标签。 https://www.360doc.cn/article/27880450_1075329921.html
20.QQ服务器拒绝发送离线文件的解决方法(对方不在线的情况下)QQ技巧经常会使用QQ来接收和发送文件,如果对方不在线,还可以离线发送文件。但今天遇到了这种情况,发送离线文件时,出现了服务器拒绝了发送请求,这是什么原因,有什么解决方法? 服务器拒绝发送离线文件 服务器拒绝了您发送离线文件的原因: 第一种:传输文件容量超过限制;实际上所有的普通QQ用户都可用使用QQ离线文件功能,只不过https://www.jb51.net/qq/249795.html
21.在Mac上的“邮件”中让电子邮件账户离线或在线让所有账户离线:选取“邮箱”>“让所有账户离线”。 让特定账户离线(如果你有多个账户):选取“邮箱”>“在线状态”>“使[账户]离线”。 “邮件”边栏中账户邮箱旁边和个人收藏栏末尾的闪电图标 表示该账户已离线。 账户离线时,你不能收取或发送邮件,但可以编写邮件以稍后发送。你可以将邮件存储为草稿并于账户再次https://support.apple.com/zh-cn/guide/mail/mlhlp1032/mac