2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

优酷暗黑模式(七):暗黑模式的技术支撑 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:002120

评论

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

KubeWharf:推动云原生技术发展的未来之路

Miracle.

#云原生 #技术人的2023总结 KubeWharf

云图说丨初识华为云边缘安全——为加速域名保驾护航

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云云图说

测试开发 | 探究人工智能的基石:强化学习的奇妙世界

测吧(北京)科技有限公司

测试

Wireshark网络工具

小齐写代码

交易所开发:中心化加密货币交易所发展的关键考虑因素实现数字交易

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

MES系统怎么实现车间管理中的生产计划和排产计划

万界星空科技

工业互联网 生产管理系统 mes 万界星空科技 万界星空科技mes

从容器的发展历史理解容器的本质

华为云开发者联盟

云计算 云原生 后端 华为云 华为云开发者联盟

专业强大的扫描仪软件:VueScan Pro中文激活版

胖墩儿不胖y

Mac软件 扫描工具 扫描仪

测试开发 | 人工智能目标检测

测吧(北京)科技有限公司

测试

实时数据获取:抖音API在电商中的应用与影响

Noah

如何鉴别LED电子显示屏好坏

Dylan

质量 评估 电子 LED显示屏

测试开发 | 探索人工智能图像生成的奇妙世界

测吧(北京)科技有限公司

测试

共建共享,创新同行!飞桨星河社区助力大模型时代开发者砥砺前行

飞桨PaddlePaddle

人工智能 开发者 WAVE SUMMIT

企业财务团队如何进行转型升级?

智达方通

全面预算管理 财务团队 财务转型

深入云原生—基于KubeWharf深度剖析-以公司实际应用场景为例深度解读

申公豹

KubeWharf

云安全资源管理定义以及实现方法

行云管家

云计算 云服务 云安全 云资源

揭秘抖音视频详情API:电商行业的制胜法宝与实时数据获取的奥秘

Noah

IPQ6018 and IPQ6000 series: highlighting differences and superior advantages

wallysSK

万德高科携手航天科技AIRIOT打造智慧能碳管理平台, 助力碳达峰碳中和

AIRIOT

数字化转型 智慧系统 能碳管理

深入理解云原生基础:Docker和Kubernetes的核心概念与应用

Miracle.

#云原生 #技术人的2023总结

企业门户平台全功能解析:从界面到集成,一站式管理与整合

天津汇柏科技有限公司

企业 统一门户

数据库的下一场革命:S3 延迟已降至原先的 10%,云数据库架构该进化了

小猿姐

数据库 云计算 Kubernetes

制造业数字化转型的核心不止是技术

万界星空科技

数字化转型 工业互联网 mes 万界星空科技mes

测试开发 | 深度解析人工智能特征提取

测吧(北京)科技有限公司

测试

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