把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

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

评论

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

音乐NFT系统的上线流程

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

AI英语考试APP开发的技术难点

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI英语考试

如何快速掌握Java八股文-获取offer的利器

储诚益

求职 Java 面试 找工作 八股文 求职技巧

AI英语考试APP优化

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI英语考试

WebGL开发地图可视化系统的技术框架

北京木奇移动技术有限公司

地理信息系统 软件外包公司 webgl开发

为什么大厂面试都深挖“八股文”?——技术筛选背后的逻辑

储诚益

面试 八股文 Java技术

通过Ngrok实现内网穿透助力远程开发

Damon小智

ngrok 内网穿透

WebGL开发地图可视化系统

北京木奇移动技术有限公司

软件外包公司 webgl开发 地图系统

webgl开发GIS系统的技术难点

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

你不知道的是:80%的面试25分钟已经结束了

储诚益

求职 找工作 面试技巧

webgl开发GIS系统的性能优化

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

AI英语考试 APP的开发

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI英语考试

AI英语考试的测试方法

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI英语考虑

AI英语考试APP的上线流程

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI英语考试

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