美文网首页
uniPush 个推 极光

uniPush 个推 极光

作者: 李霖弢 | 来源:发表于2022-07-27 16:54 被阅读0次

什么是 push

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

push 的方式
  • 在线推送
    客户端激活时,默认通过 socket 协议实现 push(透传消息),此时消息不会出现在通知栏,可自行在应用内手动创建通知栏消息。
    也可以在服务器端强制指定用厂商通道发送 通知消息,此时同离线推送。

  • 离线推送
    客户端未激活时,调用手机厂商提供的接口,通过不会离线的手机厂商通道,向手机操作系统推送消息(通知消息)。用户通过通知栏消息唤起应用后,应用才能收到消息。
    因此,离线推送功能需先向各个rom厂商申请开通推送服务
    不同厂商对通道的调用有不同的要求,如OPPO需要该APP启动过,且设备在30天内有联网行为。此外,通知栏权限默认不开启,如OPPO需要自行引导用户开启通知栏权限。

  • 小程序
    本质上也是利用了APP的在线推送 / 离线推送

  • 浏览器 webnotification
    浏览器厂商没有提供 push 通道,只是开发者通过轮询或WS自行实现的消息通知

uni push

uni-app 提供了 uni push 服务,这是一个包括客户端和服务器的统一服务,整合了苹果APNs、华为、小米、OPPO、VIVO、魅族、谷歌FCM等多家厂商的系统推送和个推的独立推送,一套代码多端推送。

  • uni push免费接入了个推原本需要收费的vip push,以支持APP在线推送,其本质就是使用dcloud账号的个推vip push,无法再进一步提升送达率
  • uni push 2.0将流程集成到了uniCloud,简化了操作,以下均以2.0为例
真机调试时

涉及到第三方 SDK 的配置,需要打包自定义基座进行测试
离线推送不支持真机调试,仅可在正式版使用

打包时

如果是云打包,首先勾选权限配置,manifest.json->App 模块权限配置->Push。然后,manifest.json->App SDK 配置->推送,按照提示申请相应平台的信息,并填写。最后,勾选并填写完成后再进行打包即可。如果是离线打包,自行在原生工程中配置SDK,并确保选择了推送模块。

极光

极光分为通知和消息。
通知就是当程序在后台运行时,导航条出现的那一条推送。
消息是不通过推送直接推送到用户app中。

个推

个推不同于极光,把通知和消息放到一起了。当我们程序处于后台时候。服务器发送透传信息的时候会以通知的形式送达手机端。当我们点击通知打开程序后传达的消息又会以透传的方式送达app中。
也可以通过参数配置改为和极光一样的模式

各手机厂商开通推送服务

unipush 官方文档 未提及消息推送需申请开通,且部分配置已落后,详见下方说明:

OPPO

OPPO开放平台-应用服务-移动服务-推送服务-申请开通消息推送
开通后将应用的AppID、AppKey、AppSecret、AppServerSecret(即MasterSecret)填入UniPush的厂商推送设置

小米

小米开放平台-应用服务-消息推送-启用推送(选择需要开启推送的应用)
开通后将应用的AppID、AppKey、AppSecret 填入UniPush的厂商推送设置

VIVO

VIVO开放平台-应用-消息推送-开通

华为

华为开放平台-我的项目-项目设置-API管理(开启推送)-常规
开通后将应用的AppID、Client Secret 、agconnect-services.json 填入UniPush的厂商推送设置


IOS(https://developer.apple.com

确保原本的 Identifiers 中已开启 Push Notification 能力,基于其生成.cer文件,再通过钥匙串生成.p12文件。(后续App打包时依然用正常的p12文件和profile文件,不需要该文件)
详见 个推官方文档个推官方视频

离线消息

安卓的离线消息推送需要向各个安卓手机厂商申请消息渠道,否则会限制推送频次并静默推送(不支持铃声和震动提示等)
IOS只要开通了“Push Notifications”即可,无额外限制,首次启动会自动申请通知栏权限
部分安卓手机默认不开启通知栏权限(如OPPO),此外也可能遇到用户手动禁用了通知栏权限,此时可手动提示用户开启权限

APP角标

不同安卓厂商有自己的角标接口和权限规定,其中OPPO采用了邀请制,不给予普通APP角标权限。

  • uniapp中可通过plus.runtime.setBadgeNumber(数字)设置角标,仅小米、VIVO、华为和开通了“Push Notifications”的 IOS 设备支持
  • unipush(个推)接口可设置角标,(默认为+1)。但大多数机型仅支持传入“+1”,此时会和上述setBadgeNumber方法冲突,不建议同时使用

接收消息

App.vueonLaunch中通过uni.onPushMessage((res)=>{})监听消息。

  • 在线默认为透传消息,收到后直接触发回调。
    如云函数开启"force_notification": true则变为通知栏消息,需点击通知栏触发回调
  • 离线消息总是为通知栏消息,点击通知栏后启动APP并触发消息
    目前安卓部分机型似乎收不到离线回调,只是能启动APP

res是一个对象,包含typedata属性

  • type为"click"(点击通知栏)或"receive"(透传)
  • data为包含 title、content、payload 的对象
    IOS的离线消息中,payload可能会被JSON序列化

相关文章

  • uniPush 个推 极光

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

  • uniapp推送流程

    首先这个功能在uniapp上面比较简单,因为uniPush集成了个推并且免费使用。 在manifest.json ...

  • iOS 推送平台

    友盟 极光 个推

  • Thinkphp之极光推送

    先说说为啥选用极光推送作为第三方的推送服务。首先我所了解的推送产品有信鸽、个推、极光,之前用到过个推,感觉还不错,...

  • [常用服务:推送+短信+移动WEB]

    消息推送 腾讯-信鸽: 百度-百度云推送: 个推-: 极光推送: 华为推送平台 盛大推送 leancloud个推、...

  • 我和极光的那些事儿 | iOS开发极光推送(apns)

    前言:当时由于项目需要,开始后台不用极光推送非要用sockets实现,结果也没有实现,最后还是用了极光推送,极光推...

  • 环信消息推送

    一,关于推送 之前做过 极光 APNS 个推的 推送 : 这里说下 极光推送是比较 适合用在 iOS 端和 安卓端...

  • React-native 之极光推送

    极光推送 jpush-react-native是极光推送官方开发的 React Native 版本插件,用于消息推...

  • Android 使用腾讯云推送方案比个推或极光等推送方案更好吗

    把腾讯云推送、个推、极光在项目中都使用过一遍后,感觉腾讯云在一些功能场景上还是做的不错的,有些功能个推和极光也不一...

  • 极光推送

    1、注册极光账号,创建应用,再根据文档,到苹果开发者中心,创建推送证书,导出成p12,上传到极光平台。(这些极光推...

网友评论

      本文标题:uniPush 个推 极光

      本文链接:https://www.haomeiwen.com/subject/vomsdltx.html