华为HarmonyOS灵活高效的消息推送服务(Push Kit) -- 10 推送实况窗消息

场景介绍

实况窗是一种帮助用户聚焦正在进行的任务,方便快速查看和即时处理的通知形态。有关实况窗简介、权限申请、开放场景、设计规范等说明,请参见Live View Kit简介。

通过Push Kit发送的实况窗消息支持三种操作类型,分别是:

实况窗消息操作类型

支持操作的场景类型

说明

创建实况窗

FLIGHT、TAXI、TRAIN

仅航班、出行打车、高铁/火车场景支持通过Push Kit创建实况窗,其他场景请通过Live View Kit本地创建。

更新实况窗

所有场景

所有场景皆支持通过Push Kit更新实况窗。

结束实况窗

所有场景

所有场景皆支持通过Push Kit结束实况窗。

有关场景类型的详细说明请参见支持的范围与场景。

根据创建实况窗的方式不同,通过Push Kit发送实况窗消息的流程有所区别。

通过Live View创建实况窗,Push Kit更新与结束实况窗

cke_5070.png

  1. 使用Push Kit,获取Push Token。
  2. 使用Live View Kit创建实况窗成功后,开发者需要将实况窗id、pushToken、实况窗场景event以及业务服务的相关的状态属性保存到业务服务端。
  3. 当业务服务的用户订单状态发送变化时,通过Push Kit通道推送更新消息,更新/结束实况窗。

通过Push Kit创建、更新、结束实况窗

cke_11946.png

  1. 使用Push Kit,获取Push Token。
  2. 将Push Token保存到业务的服务端。
  3. 通过Push Kit推送创建/更新/结束实况窗消息。

实况窗更新效果示例图:

cke_18933.png

注意

  • 单个实况窗的生命周期最长不超过8小时,超过8小时后,系统会认为通知结束。
  • 为了确保用户看到内容的时效性,请您确保对实况窗内容进行及时更新。系统将在实况窗超过2小时未更新时,隐藏实况窗在状态栏胶囊和锁屏的展示,保留通知中心展示;超过4小时未更新,系统会认为实况窗结束,并从各个展示入口清除该实况窗。

开通权益

推送实况窗消息前您需要开通对应的场景权益,可参见开通实况窗权益完成权益的申请。

频控规则

调测阶段,每个项目每日全网最多可推送1000条测试消息。发送测试消息需设置testMessage为true。

正式发布阶段,单设备单应用下每日推送消息总条数受设备消息频控限制,所有场景化消息发送条数不超过3000条。

单个实况窗消息,出行打车与赛事比分场景每个设备每5分钟最多更新30次,每小时最多更新180次。其余场景每个设备每5分钟最多更新10次,每小时最多更新60次。超过频次部分将丢弃不下发。

开发步骤

  1. 参见指导获取Push Token。
  2. 根据应用情况选择创建实况窗的方式:

    • 通过Live View Kit创建本地实况窗,详细内容请参见构建本地实况窗。
    • 通过Push Kit远程创建实况窗,需满足创建实况窗约束。以出行打车场景为例,消息示例如下:
      ​
      // Request URL
      POST https://push-api.cloud.huawei.com/v3/[projectid]/messages:send
      // Request Header
      Content-Type: application/json
      Authorization: Bearer eyJr*****OiIx---****.eyJh*****iJodHR--***.QRod*****4Gp---****
      push-type: 7
      // Request Body
      {
      "payload": {
      "activityId": 1,
      "operation": 0,
      "event": "TAXI",
      "status": "DRIVER_ON_THE_WAY", // 司机正在赶来
      "activityData": {
      "notificationData": {
      "type": 3,
      "contentTitle": "{{status}}", // 司机正在赶来
      "contentText": [
      {
      "text": "距您"
      },
      {
      "text": "1.2公里",
      "foregroundColor": "#FF317AF7"
      },
      {
      "text": " | "
      },
      {
      "text": "5分钟",
      "foregroundColor": "#FF317AF7"
      }
      ],
      "clickAction": {
      "actionType": 1, // 打开应用自定义页面
      "action": "xxxxxx" // 应用内置页面ability对应的action
      },
      "richProgress": {
      "type": 0,
      "nodeIcons": ["icon1.png", "icon2.png", "icon3.png"], // 取值为“/resources/rawfile”路径下的文件名
      "indicatorIcon": "taxi.png", // 取值为“/resources/rawfile”路径下的文件名
      "progress": 40,
      "indicatorType": 1,
      "color": "#FF317AF7",
      "bgColor": "#19000000"
      },
      "extend": {
      "type": 3,
      "pic": "phone.png", // 取值为“/resources/rawfile”路径下的文件名
      "clickAction": {
      "actionType": 5, // 点击辅助区打开拨号界面
      "data": {
      "tel": "138xxxxxxxx" // 通过tel字段携带拨号的电话号码
      }
      }
      }
      },
      "capsuleData": {
      "type": 1,
      "status": 1,
      "icon": "icon.svg", // 取值为“/resources/rawfile”路径下的文件名
      "bgColor": "#FF317AF7",
      "remind": "EXPAND",
      "title": "接驾中",
      "content": "预计5分钟"
      }
      }
      },
      "pushOptions": {
      "ttl": 1000,
      "biTag": "biTag"
      },
      "target": {
      "token": [
      "MAAALgE4G98BAAAAst************jq"
      ]
      }
      }
      ​
      • [projectId]:项目ID,登录AppGallery Connect网站,选择“我的项目”,在项目列表中选择对应的项目,左侧导航栏选择“项目设置”,在该页面获取。
      • Authorization:JWT格式字符串,可参见Authorization获取。
      • push-type:7表示实况窗消息场景。
      • token:Push Token,可参见获取Push Token获取。
      • event:实况窗消息具体场景类型,需要与应用实际申请通过的场景一致。例如:TAXI(出行打车)、FLIGHT(航班)等。通过Push Kit创建实况窗仅支持TAXI、FLIGHT、TRAIN三种场景。详情请参见创建实况窗约束。
      • operation:实况窗通知操作类型,0表示创建实况窗。详情请参见operation。
      • activityData:填写您项目中的实况窗数据。详情请参见activityData。
      • activityId:实况活动ID。详情请参见activityId。
      • type:实况窗布局类型,有基础类、进度可视化类、强调文本类等。创建实况窗时每种event仅可使用特定的布局类型,详情请参见创建实况窗约束。
      • status:表示实况窗消息状态。operation为0时必填,取值范围根据场景类型而定,详情见Status取值范围,并且需要在支持携带占位符的字段填入至少一次status的占位符{{status}},Push Kit将替换占位符{{status}}为Status取值范围中对应的值。

  3. 当用户的服务订单状态发生变化时,开发者可以调用Push Kit服务端开放的REST API服务接口,更新或者结束实况窗。

    消息详情可参见场景化消息API接口功能介绍。(若开发者更新的实况窗为通过Push Kit远程创建的实况窗,更新时请遵守创建实况窗约束)

    ​
    // Request URL
    POST https://push-api.cloud.huawei.com/v3/[projectid]/messages:send
    // Request Header
    Content-Type: application/json
    Authorization: Bearer eyJr*****OiIx---****.eyJh*****iJodHR--***.QRod*****4Gp---****
    push-type: 7
    // Request Body
    {
    "payload": {
    "activityId": 1,
    "operation": 1,
    "event": "TAXI",
    "status": "HEADING_TO_DESTINATION", // 正在去往目的地
    "version": 1,
    "activityData": {
    "notificationData": {
    "type": 3,
    "contentTitle": "{{status}}", // 正在去往目的地
    "contentText": [
    {
    "text": "距目的地"
    },
    {
    "text": "7.2公里",
    "foregroundColor": "#FF317AF7"
    },
    {
    "text": " | 预计"
    },
    {
    "text": "27分钟",
    "foregroundColor": "#FF317AF7"
    }
    ],
    "clickAction": {
    "actionType": 1, // 打开应用自定义页面
    "action": "xxxxxx" // 应用内置页面ability对应的action
    },
    "richProgress": {
    "type": 0,
    "nodeIcons": ["icon1.png", "icon2.png", "icon3.png"], // 取值为“/resources/rawfile”路径下的文件名
    "indicatorIcon": "taxi.png", // 取值为“/resources/rawfile”路径下的文件名
    "progress": 70,
    "indicatorType": 1,
    "color": "#FF317AF7",
    "bgColor": "#19000000"
    },
    "extend": {
    "type": 0
    }
    },
    "capsuleData": {
    "type": 1,
    "status": 1,
    "icon": "icon.svg", // 取值为“/resources/rawfile”路径下的文件名
    "bgColor": "#FF317AF7",
    "title": "27分钟",
    "content": "距目的地7.2公里"
    }
    }
    },
    "pushOptions": {
    "ttl": 1000,
    "biTag": "biTag"
    },
    "target": {
    "token": [
    "IQAAAACy0Yu************enANg"
    ]
    }
    }
    ​
    • [projectId]:项目ID,登录AppGallery Connect网站,选择“我的项目”,在项目列表中选择对应的项目,左侧导航栏选择“项目设置”,在该页面获取。
    • Authorization:JWT格式字符串,可参见Authorization获取。
    • push-type:7表示实况窗消息场景。
    • token:Push Token,可参见获取Push Token获取。
    • event:实况窗通知具体场景类型,需要与应用实际申请通过的场景一致。例如:TAXI(出行打车)、FLIGHT(航班)等。详情请参见event。
    • operation:实况窗通知操作类型,1表示更新实况窗,2表示结束实况窗。详情请参见operation。
    • activityData:填写您项目中的实况窗数据。详情请参见activityData。
    • activityId:实况活动ID。详情请参见activityId。
    • type:实况窗布局类型,有基础类、进度可视化类、强调文本类等。详情请参见type。
    • status:表示实况窗消息状态。operation为1且更新的实况窗为通过Push Kit远程创建的实况窗时必填,取值范围根据场景类型而定,详情见Status取值范围,并且需要在支持携带占位符的字段填入至少一次status的占位符{{status}},Push Kit将替换占位符{{status}}为Status取值范围中对应的值。
    • version:更新实况窗通知的版本号。详情请参见version。

      注意

      发送的activityId对应的实况窗id(请见LiveView)不存在,将限制发送该activityId的实况窗消息24小时。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

可变剪接分析一步到位,这个 R 包够猛!

生信碱移 ASpediaFI可变剪接 可变剪接(Alternative Splicing, AS)是基因表达过程中一种重要的调控机制,通过这种机制,单个基因可以产生多个不同的mRNA转录本,这些转录本通过不同的剪接方式(即选择性地包括…

Vue使用axios二次封装、解决跨域问题

1、什么是 axios 在实际开发过程中,浏览器通常需要和服务器端进行数据交互。而 Vue.js 并未提供与服务器端通信的接口。从 Vue.js 2.0 版本之后,官方推荐使用 axios 来实现 Ajax 请求。axios 是一个基于 promise 的 HTTP 客户端。 关于 promise 的详细介…

AGV小车全双工通信应用-低延迟、8路并发全双工通信

随着智能制造和物流行业的不断发展,AGV小车(自动导引车)在工厂、仓库、物流中心的应用日益广泛。AGV小车凭借其自动化、高效、灵活的特点,逐渐成为物料搬运中的关键设备。在这种复杂多变的环境中,数据传输的可靠性、实…

c语言200例 063 信息查询

大家好&#xff0c;欢迎来到无限大的频道。 今天给大家带来的是c语言200例 题目要求&#xff1a; 从键盘当中输入姓名和电话号&#xff0c;以“#”结束&#xff0c;编程实现输入姓名、查询电话号的功能。 参考代码如下&#xff1a; #include <stdio.h> #include <st…

计算机视觉的应用34-基于CV领域的人脸关键点特征智能提取的技术方法

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用34-基于CV领域的人脸关键点特征智能提取的技术方法。本文主要探讨计算机视觉领域中人脸关键点特征智能提取的技术方法。详细介绍了基于卷积神经网络模型进行人脸关键点提取的过程&#xff0c;包括使…

css-functions伪类选择器系列二

一张图浏览CSS Functions 概述 本文主要讲述CSS的部分伪类选择器第二篇,包括::nth-child、:nth-last-child、:nth-of-type和:nth-last-of-type。 :nth-child() :nth-child伪类是根据父元素的子元素列表中的索引来选择元素。 语法 :nth-child是以一个参数nth来描述匹配兄…

apache paimon简介(官翻)

介绍 如下架构所示: 读/写操作: Paimon 支持多样化的数据读写方式,并支持 OLAP 查询。 读取: 支持从历史快照(批处理模式)中消费数据,从最新偏移量(流处理模式)中读取数据,或以混合方式读取增量快照。写入: 支持从数据库变更日志(CDC)进行流式同步,从离线数据中…

Android平台使用VIA创建语音交互应用

Android平台使用VIA创建语音交互应用 概述 在 Android 平台上开发一款语音助手应用需要整合多种技术,包括语音识别(ASR)、文字转语音(TTS)、以及热词检测(Hotword Detection)。这些技术共同构成了语音助手应用的核心交互方式,使用户能够通过语音命令与设备进行无缝交…

EfficientNet(2019):基于复合缩放的自动化架构搜索高效网络!

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks EfficientNet&#xff1a;重新思考卷积神经网络的模型扩展 论文下载地址&#xff1a; https://arxiv.org/abs/1905.11946 学习笔记参考了这位大佬&#xff1a;https://blog.csdn.net/qq_37541097/ar…

ProgrammerAI—AI辅助编程学习指南

前言 随着AIGC&#xff08;AI生成内容&#xff09;技术的快速发展&#xff0c;诸如ChatGPT、MidJourney和Claude等大语言模型相继涌现&#xff0c;AI辅助编程工具正逐步改变程序员的工作方式。这些工具不仅可以加速代码编写、调试和优化过程&#xff0c;还能帮助解决复杂的编程…

python标识符和关键字

1、标识符 1.1 写法 标识符由字母、下划线和数字组成&#xff0c;且数字不能开头。严格区分大小写。不能使用关键字。 # 标识符由字母、下划线和数字组成&#xff0c;且数字不能开头。 # a_1_$ 1 # print(a_1_$)# 严格区分大小写。 # Animal 1 # print(animal)# 不能使用关…

仓颉编程入门2,启动HTTP服务

上一篇配置了仓颉sdk编译和运行环境&#xff0c;读取一个配置文件&#xff0c;并把配置文件简单解析了一下。 前面读取配置文件&#xff0c;使用File.readFrom()&#xff0c;这个直接把文件全部读取出来&#xff0c;返回一个字节数组。然后又创建一个字节流&#xff0c;给文件…

vscode[c、cmake]:某些引用可能丢失,因为在 查找所有引用 启动时,工作区分析不完整

1. 问题描述 vscode 调试一个c语言工程&#xff0c;利用cmake编译调试&#xff0c;通过cmakelist.txt传递宏标识来条件编译代码。但是&#xff0c;在build之后&#xff0c;传递的宏标识不能让vscode自动转跳相关代码&#xff0c;猜测为代码分析时未包含宏标识。提示&#xff1a…

双向链表的基本结构及功能实现

1.基本结构: 双向链表是一种链表数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含三个部分&#xff1a; (1).数据域&#xff1a;存储节点的数据 (2).前驱指针:指向前一个节点 (3).后驱指针:指向下一个节点 2.基本特性&#xff1a; 双向链接: 与单向链表…

不在同一局域网怎么远程桌面?非局域网环境下,实现远程桌面访问的5个方法分享!

非局域网环境下&#xff0c;怎么远程桌面&#xff1f;还能做到吗&#xff1f; 在企业管理中&#xff0c;远程桌面访问已成为提高工作效率、实现跨地域协同工作的关键工具。 然而&#xff0c;当被控端与控制端不在同一局域网时&#xff0c;如何实现远程桌面连接成为了许多企业…

【Android】页面启动耗时统计流程梳理

文章基于Android 11 写在前面&#xff1a; 最近的文章都会放流程图&#xff0c;时序图之类的图片&#xff0c;解释下为什么这么做&#xff1a; 图片的好处&#xff1a; 流程清晰&#xff0c;一目了然很多代码&#xff0c;如同老太太的裹脚布&#xff0c;又臭又长。影响理解&a…

【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台

一、介绍 果蔬识别系统&#xff0c;本系统使用Python作为主要开发语言&#xff0c;通过收集了12种常见的水果和蔬菜&#xff08;‘土豆’, ‘圣女果’, ‘大白菜’, ‘大葱’, ‘梨’, ‘胡萝卜’, ‘芒果’, ‘苹果’, ‘西红柿’, ‘韭菜’, ‘香蕉’, ‘黄瓜’&#xff09;…

基于SpringBoot+Vue的校园快递代取管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

CNN网络训练WISDM数据集:模型仿真及可视化分析

卷积神经网络&#xff08;CNN&#xff09;因其强大的特征提取能力和深度学习架构而备受推崇&#xff0c;CNN在处理图像数据时展现出的卓越性能&#xff0c;使其成为解决各种视觉识别任务的首选工具。WISDM数据集是一个广泛用于运动估计研究的基准数据集&#xff0c;它包含了多个…

14年408-计算机网络

第一题&#xff1a; 解析&#xff1a;OSI体系结构 OSI由下至上依次是&#xff1a;物理层-网络链路层-网络层-运输层-会话层-表示层-应用层。 因此直接为会话层提供服务的是运输层。答案选C 第二题&#xff1a; 解析&#xff1a;数据链路层-交换机的自学习和帧转发 主机a1向交换…