写点什么

优酷暗黑模式(七):暗黑模式的技术支撑 Weex & H5

  • 2020-02-27
  • 本文字数:1140 字

    阅读完需:约 4 分钟

优酷暗黑模式(七):暗黑模式的技术支撑 Weex & H5

在本文中,我们会介绍优酷 App 的 Weex 和 H5 页面是如何尽可能复用 Native 端的实现方案,实现暗黑模式的。

一、适配原理

对于 Weex 和 H5 页面的暗黑模式支持,我们考虑了几种方案。


第一种方案,只提供视觉模式查询能力,由具体页面的开发同学来控制效果;


第二种方案,建立 JavaScript 版本的公共资源库和设计标准化体系;


第一种方案过于简单,难以对最终页面呈现结果做统一管控;


第二方案又比较重,需要较长的时间成本。


我们的最终的方案是:Native/Weex/H5 具体页面的开发都统一按照视觉标准化定义的 DesignToken 进行开发,这样同一套设计体系可以复用到不同的渲染方式。Native 容器在加载 Weex 或 H5 页面时,将当前的色值表传给 JavaScript 侧;JavaScript 侧不用关心当前所处的视觉模式,只需要读取色值表并设置到页面组件。


Weex/H5 页面实现暗黑模式的架构图:



Weex/H5 的实际使用场景一般是作为活动的承载页,内容的落地页,和跨应用业务的交互页。但不论是哪种,都是嵌入在整个原生页面交互链路上的。所以我们把 Native 当作是 Weex/H5 容器的运行环境,Native 触发动态页面的渲染时,我们会将色板从色彩管理器中取出,传递给 JavaScript 侧,然后借由 JavaScript 侧影响最终的视觉效果呈现。

1. Weex 页面的适配

Weex 渲染流程图:


2. H5 页面的适配

H5 渲染流程图:



色彩管理器向 JS 传递的色板数据


{    "cb_1":"rgba(36,165,255,0)",    "cb_2":"rgba(0,179,250,0)",    "cb_3":"rgba(25,69,121,0)",    "cd_1":"rgba(0,0,0,1)",    "cg_1":"rgba(28,32,41,0)",    ......    "ykn_belt":"rgba(37,37,43,0)",    "ykn_blackNavigationBar":"rgba(29,29,33,0)",    "ykn_elevatedPrimaryBackground":"rgba(37,37,43,0)",    "ykn_elevatedPrimaryGroupedBackground":"rgba(37,37,43,0)",    "ykn_elevatedSecondaryBackground":"rgba(37,37,43,0)",    "ykn_elevatedSecondaryGroupedBackground":"rgba(51,51,55,0)",    "ykn_elevatedTertiaryBackground":"rgba(66,66,69,0)"}
复制代码


通过这样的技术方案,我们最终达成了同一份业务代码,自动适配系统的视觉模式。无论是 Weex 页面还是 H5 页面,最终的视觉效果是和 Native 页面保持和谐统一的。

二、页面视觉效果

以下是 Weex/H5 页面最终呈现的视觉效果:

1. H5 页面视觉效果

H5 页面的普通模式:



H5 页面的暗黑模式 :


2. Weex 页面视觉效果

Weex 页面的正常模式:



Weex 页面的暗黑模式:



作者简介


涵父,阿里文娱无线开发专家。


相关阅读


优酷暗黑模式(一):是什么、为什么、如何落地?


优酷暗黑模式(二):如何建立设计语言标准化管理体系


优酷暗黑模式(三):暗黑模式设计指南


优酷暗黑模式(四):设计标准化的技术实现


优酷暗黑模式(五):暗黑模式的技术实现策略


优酷暗黑模式(六):暗黑模式的技术支撑 iOS


2020-02-27 10:001856

评论

发布
暂无评论
发现更多内容

云电脑知识科普

青椒云云电脑

云电脑

这10款VS Code神仙插件,嵌入式程序员必备

不在线第一只蜗牛

「白嫖」开源的后果就是供应链攻击么?| 编码人声

声网

Docker从入门到精通:Docker 容器数据卷详解

霍格沃兹测试开发学社

在钉钉AI Agent 商店,寻找未来TOB 应用的答案

ToB行业头条

博睿数据亮相GOPS全球运维大会,Bonree ONE 2024春季正式版发布!

博睿数据

Sentinel如何持久化数据到Nacos?

王磊

Java

云电脑知识科普

青椒云云电脑

云电脑

卫星地面站监测系统仿真

DevOps和数字孪生

卫星 协同仿真

npm命令完整使用指南

霍格沃兹测试开发学社

智己汽车与火山引擎在模型应用及算法领域达成深度合作

新消费日报

Rhino 8 for Mac(犀牛3D建模软件)

iMac小白

Rhino8激活版 Rhinoceros8 Rhino 8下载

Stable Diffusion中的embedding

程序那些事

人工智能 程序那些事 openai

使用pandas高效读取筛选csv数据

霍格沃兹测试开发学社

【论文速读】|大语言模型(LLM)智能体可以自主利用1-day漏洞

云起无垠

出海扩建扩产,光伏制造可复用的数据“最佳实践” | 数据要素 × 工业制造

奇点云

奇点云 数据要素 工业制造 光伏产业

Apache Flink 中作业图与执行图的深入解析

木南曌

flink 实时计算

【论文速读】| 针对红队攻击和防御大模型的攻击提示生成

云起无垠

如何在 Windows 上安装SSMS,保姆级教程来了!

霍格沃兹测试开发学社

Things 3.20.5中文免激活版 mac日程和任务管理工具

iMac小白

Things 3 Things下载

程序员转技术管理要做哪些努力?

伤感汤姆布利柏

Parallels Desktop 19 for Mac虚拟机 19.1.0

iMac小白

Parallels Desktop 虚拟机 Parallels Desktop下载 Parallels Desktop19

ClkLog实践中的挑战:如何设计和实施有效的埋点指标

ClkLog

开源 数据分析 开源软件 埋点分析系统

澳鹏中国大模型智能开发平台4大优势

澳鹏Appen

人工智能 数据 数据集 数据标注 大模型

苹果开源高效语言模型 OpenELM;全球首个 AI 基因编辑器开源丨RTE 开发者日报 Vol.192

声网

ETLCloud平台组件模版的使用技巧

RestCloud

组件 ETL 模板使用

详解数仓的向量化执行引擎

快乐非自愿限量之名

Python 人工智能 数据库 算法

优酷暗黑模式(七):暗黑模式的技术支撑 Weex & H5_移动_阿里巴巴文娱技术_InfoQ精选文章