支付宝通知新体验-OPPO 泛在卡片多模交互

简介: 支付宝通知新体验-OPPO 泛在卡片多模交互

本文来源:支付宝体验科技


  1 话题背景


OPPO 在 2022 年发布了智慧跨端系统"潘塔纳尔",系统的定义为“面向万物互融,以人为中心的智慧跨端系统”。支付宝作为第一批合作企业,同时参与编写了 OPPO 潘塔纳尔白皮书 1.0。


泛在服务是潘塔纳尔系统中负责情景感知,服务流转功能,可以理解为直接面向用户展示的一环。泛在卡片是泛在服务的表现形式之一,用官方的解释是:“泛在服务卡片是泛在服务的一种特殊服务形态。具有一次开发,多端适配,支持多设备,多入口流转的特征。通过系统感知和智慧决策,卡片服务能够被精准、实时的分发;卡片内容能够被呈现在桌面等多个入口,提供更加直达的服务呈现。”先看一下整体官方效果图:

在视觉感官上,整个泛在卡片像系统通知的扩展,有更多的入口,有更丰富的表现形式。也有点像通知与桌面小组件的混合,但是与小组件等开发方式不同,泛在卡片具有以下特征:

  • 易开发:采用类 web 前端开发方式,一次开发,多入口自适应;
  • 跨平台:采用跨平台引擎技术,具备自渲染能力;
  • 高性能:基于 web css 子集开发样式,具有更丰富的动效;

在 OPPO 潘塔纳尔系统原设定的实现卡片链路有两种:有宿主和无宿主。有宿主和无宿主的实现和区别会在实现链路章节有详细介绍。支付宝作为 OPPO 厂商三方合作应用,在实现链路上走了一条厂商新建的“独特”链路,属于是厂商合作的新案例。


  2 上机效果


看完了官方效果,回到支付宝看一看真实的上机效果。卡片会在多个入口有所展示,支付宝目前一期已接入了打车,外卖和自提场景,二期有计划接入生活,缴费,信用卡等场景。

  • 桌面主卡
  • 位置位于桌面首页中的小布建议核心展区。当收到 OPPO 泛在服务推送卡片的通知后,由系统智慧大脑决策展现卡片大小,有12,22,2*4三种卡片展现大小,如下图所示(以打车场景为例):

  • 多入口流转
  • 多入口是包括通知栏,状态栏,锁屏,息屏(AOD)入口进行展示。多入口对于三方应用可配置,即三方应用可以控制展示放在哪些入口;

以上主要是支付宝打车场景下各个入口下卡片的展示形态。除了打车场景,支付宝一期还接入了外卖和自提场景,以及深色模式下效果如下图所示:


  3 实现链路


3.1 泛在卡片种类


OPPO 的泛在卡片独立于三方应用 App,由类 Web 前端语言开发。卡片开发完成后,将每个业务场景下的前端卡片代码打包成一个卡片包,也称 UPK 包。UPK区别于三方应用app独立审核,独立上架。OPPO 泛在卡片有两种实现方案:有宿主卡片和无宿主卡片;

  • 有宿主卡片
  • 指的是 UPK 包中,只包含卡片 UI 相关代码,卡片数据由宿主 App 提供。以此方式接入,要求有宿主 App 安装在 OPPO 手机上,在卡片运行时,宿主 APP 保活且与 UPK 卡片通信提供数据,通信方式是通过泛在接入 SDK 。数据交互示意图如下:

  • 无宿主卡片
  • 指的是 UPK 包中,不但包含卡片 UI 代码,也包含卡片数据的逻辑代码。泛在卡片使用 JS 来实现卡片触发,更新逻辑,为卡片提供数据。此方式不依赖宿主 App,数据交互示意图如下:

宿主方式和无宿主的方式对比区别如下:

接入方式 UI 开发 数据开发 UPK 交付方式
有宿主 模板&样式&数据定义 引入 SDK,在宿主 App 实现,提供卡片数据 宿主 App 的 assets 目录
无宿主 模板&样式&数据定义 使用 JS 实现,卡片运行时,通过网络获取数据 OPPO 服务仓库


3.2 对接实现方案


区别厂商提供的方案,支付宝在已经接入苹果,华为厂商的背景下,OPPO 厂商方案与支付宝内实现方案存在巨大 gap。支付宝依赖端内触发卡片,云端链路更新卡片,OPPO 厂商仅支持二选一。在经过了多轮技术方案讨论,最终采用有宿主和无宿主折中方案,即通过支付宝端内接入泛在 SDK 触发卡片,后续卡片的更新由支付宝云端推送厂商云端数据更新。整体的实现链路甬道图如下所示:

image.png

主要实现链路包括以下:

  • 支付宝客户端接受服务端订单消息;
  • 支付宝客户端通过泛在接入 SDK 感知对应业务场景泛在服务开关,例如打车场景下 OPPO 出行泛在服务开关是否打开;
  • 支付宝客户端根据商定协议,通过泛在接入 SDK 发送订单数据,由系统指挥决策后展示出卡;
  • 订单节点更新数据由支付宝服务端流转,推送至厂商云端;
  • 厂商云端在接收到推送来的更新数据,由唯一 ID 标识用户,推送并刷新用户手机桌面卡片数据;

整体的实现链路,不仅做到了触发可控,由支付宝端侧控制;而且更新不需要支付宝客户端活跃,用户不必频繁打开支付宝保证后台活跃。


  4 代码实现


泛在卡片在支付宝 App 端侧主要包含两部分,一部分是前端卡片即 UPK 包中包含的代码,主要是进行 UI 展示以及数据更新;另一部分是通过泛在接入 SDK 然后感知服务开关,发送数据到系统触发卡片。


4.1 前端卡片


OPPO 前端页面提供的文件格式为 oml,oml 代码中包含<template>, <style>, <data>标签,分别为模板、样式、事件和数据定义。

image.png

UPK卡包中包含无宿主类型中seedling.js文件,该文件作为全局数据提供者,接收数据更新卡片。seedling.js文件包含的主要代码是在不同的生命周期下控制卡片的数据展示,如下图所示:

image.png

4.2 SDK接入

支付宝端侧内部的泛在接入SDK的作用的主要有两个:1.感知业务场景对应的泛在服务开关状态;2.向泛在服务发送卡片数据,触发卡片展示;伪代码如下图所示:

image.png


  5 方案特点

支付宝线上已经支持友商类似功能,如 iOS 的灵动岛,华为的实况通知。作为国内的四大厂商,华为和 OPPO 在整体的实现链路上是存在差异性,这里将 OPPO 的实现方案的特点罗列出来,如下图所示;

image.png

OPPO 的泛在卡片在实现上更多元化,采用前端+客户端的方式。卡片可以通过支付宝端侧触发,也可以通过支付宝云侧直接推送卡片到用户手机端。卡片对于三方应用是白盒,可感知生命周期。


  6 优化思考

在连续接入华为和 OPPO 两个厂商之后,在整体的功能架构上,出现了一些新思考,包括:除了支付宝自用,是否可以提供给支付宝内的三方小程序使用?功能是否可以供用户查询,让用户主动知晓支付宝有此项功能?如何降低接入成本?以此总结为模块的架构优化。

6.1 模块优化

模块优化的目的有两个,一个是为了支付宝内三方应用小程序可以快速接入厂商新特性,二是为了其他厂商类似功能在支付宝内的快速接入。

image.png

在实现上划分为四个模块:

  • 功能注册:是整个功能的入口,无论是其他三方小程序还是支付宝自己的业务使用都由此入口注册,注册后,需要绑定数据回调接口;
  • 路由:路由的作用主要是不需要上层业务感知是哪个厂商,直接定向用户当前的手机厂商所对应的功能。例如针对打车业务,某打车三方小程序接入支付宝厂商新特性后,用户下单后,OPPO 手机的用户会触发泛在卡片,而华为手机用户会触发实况通知;
  • 数据分发:数据分发主要是将功能注册绑定的数据接口传入的数据解析,将解析后的数据发送至对应厂商的卡片触发接口;
  • UI 渲染:UI 渲染是底层厂商能力,对接每个厂商提供的新特性;

另外考虑提供功能查询入口,功能查询考虑将路由模块再封装一层,路由模块可以作为中间层。整体的对外表现形式可以是一个小程序,也可以是面向开发的 JSAPI。通过对外表现形式,查询路由可以得到当前手机所支持的厂商特性,用户或开发者可以根据当前的厂商特性进行选择是否打开以及关闭。


  7 致谢

整个支付宝与 OPPO 泛在卡片的实现周期为 2 个月,目前在支付宝的 10.5.36 版本已上线,目前正在灰度中。整个开发周期内坎坷不断,连 OPPO 厂商合作同学都不得不感慨:“这是我们实现过的最复杂的通知链路”,里面有太多大家付诸的时间和心血,正所谓“关关难过关关过”,感谢所有参与到其中的同学们的付出。


谨此感谢:我们美丽的产品小姐姐一芽,事事回应的商务东来,消息服务端逸洲,Push 服务端卓农,以及客户端的唯敬和博欢。同时对厂商所有对接同学表示感谢!

相关文章
|
存储 缓存 负载均衡
vivo手机上的系统级消息推送平台的架构设计实践
本文将要分享的是手机厂商vivo的系统级推送平台在架构设计上的技术实践和总结。这也是目前为止首次由手机厂商分享的自建系统级推送平台的技术细节,我们也得以借此机会一窥厂商ROOM级推送通道的技术水准。
349 0
vivo手机上的系统级消息推送平台的架构设计实践
|
前端开发
语音直播系统源码,加速平台流量变现的重要功能
语音直播系统源码,加速平台流量变现的重要功能
|
自然语言处理 运维 监控
阿里云企业物联网平台推出千里传音播报服务 高效打造云端一体智能硬件
作为阿里云Cloud AIoT Native架构的基础平台,近日,阿里云企业物联网平台正式推出了IoT 云端一体应用——千里传音播报服务。该应用是阿里云AIoT针对带有语音播报能力的AIoT设备,提供的云端一体的解决方案,为播报提醒类设备应用提供从播报语料合成,语料管理,语料推送到设备,播报设备管理等完善功能,配合集成了端侧播报能力的HaaS设备,帮助用户高效完成播报类设备的开发和长期运行。
372 12
阿里云企业物联网平台推出千里传音播报服务 高效打造云端一体智能硬件
|
编解码 运维 自然语言处理
阿里云物联网平台推出增值服务中心 特色功能打造智能设备
3月18日,阿里云物联网平台增值服务中心正式上线,提供多种特色服务,在帮助设备快速上云的同时,具备符合场景需求的功能。
496 0
阿里云物联网平台推出增值服务中心 特色功能打造智能设备
|
监控 安全 数据可视化
|
编解码 5G Android开发
1688直播基于HarmonyOS分布式软总线助力商家多设备开播
大家好,我是万合,这是我在 [Qcon+北京-全球软件开发大会](https://qconplus.infoq.cn/2021/beijing/) 上分享的案例 ——[《1688商家基于HarmonyOS的多屏协同开播方案》](https://qconplus.infoq.cn/2021/beijing/presentation/3761)。本文我将结合业务场景从技术角度,分享下**1688直播供给侧是如何基于HarmonyOS的分布式软总线技术,实现多设备协同开播,助力1688商家降低开播成本、提高开播能力。**
594 0
1688直播基于HarmonyOS分布式软总线助力商家多设备开播
|
存储 自然语言处理 前端开发
OTT端登录态设备穿透:扫码登录与扫码反登录 | 《优酷OTT互联网大屏前端技术实践》第二章
常规“扫码登录”业务,一般由PC端和手机端两部分组成,而且PC端一般作为“被扫码方”,登录态则由手机端进行操作及确认。那以“CIBN酷喵影视”为代表的OTT大屏电视场景,其扫码登录实现情况又是怎样的呢?
1020 0
OTT端登录态设备穿透:扫码登录与扫码反登录 | 《优酷OTT互联网大屏前端技术实践》第二章
|
小程序
云支付支持哪些蜻蜓设备?
云支付支持哪些蜻蜓设备?
1751 0
|
搜索推荐
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
闲鱼技术--镜空 导语 发布app后,开发者最头疼的问题就是如何解决交付后的用户侧问题的还原和定位,是业界缺乏一整套系统的解决方案的空白领域,闲鱼技术团队结合自己业务痛点在flutter上提出一套全新的技术思路解决这个问题。
3676 0
下一篇
无影云桌面