W3C成立MiniApps标准工作组,推动MiniApp生态繁荣健康发展
传统的 HTML 5 应用开发效率较高,但用户性能体验不够完美,于是出现了使用 Web 技术开发具有类似于原生应用的用户体验的 Web 应用的尝试,包括 Cordova、Electron、NativeScript、Progressive Web Apps、W3C Widgets 等。
一种名为 MiniApp 的新尝试出现并迅速受到用户的欢迎。MiniApp 是一种小型、免安装、快速加载的程序,通常在一个宿主应用或操作系统中运行(如小程序、快应用),也可以是支持跨端部署的 JS 原生应用。MiniApp 既使用了 CSS 和 javascript 等 Web 技术,同时又可以使用操作系统提供的能力。
目前的 MiniApp 厂商众多,而各厂商都有着各自不同的 API。为了增强不同 MiniApp 平台之间的互操作性,阿里巴巴、百度、华为、小米等 MiniApp 厂商自2019年5月以来通过在 W3C Web 中文兴趣组 [1] 的合作,于同年9月联合编撰发布 《MiniApp 国际标准化白皮书》[2],作为初步的标准化探索。随着全球越来越多的公司表现出对 MiniApp 相关标准讨论的浓厚兴趣,MiniApps 生态社区组于 TPAC 2019 [3] 期间正式成立,以便全球 Web 社区展开广泛合作推动 MiniApp 的国际标准化进程。
[1]https://www.w3.org/2018/chinese-web-ig/index.zh-Hans.html
[2]https://www.w3.org/TR/mini-app-white-paper/
[3]https://www.w3.org/2019/09/20-chinese-web-minutes.html
经过为期一年的孵化,MiniApps 生态社区组 [4] 开发了一系列 MiniApp 技术规范提案和一个需求文档。为了使 MiniApp 标准化具有更强的互操作性,最大限度地与 Web 融合,W3C 团队和 MiniApp 社区组协调组织了一次全球范围的 MiniApp 标准化研讨会 [5],W3C 技术架构组(TAG)代表及20多个全球厂商参会,共同探讨推动MiniApp未来的标准化方向。在此特别感谢 MiniApps 生态社区组主席陈胤立(小米)、谷盛(Google)、李安琪(阿里巴巴)、祖明(百度),各提案编者以及全体成员的贡献,该社区组将继续孵化新的标准化需求与规范提案。
[4] https://www.w3.org/community/miniapps/
[5] https://www.w3.org/2020/07/miniapp-virtual-meeting/index_zh.html
基于广泛的标准化需求,W3C 今天宣布正式成立 MiniApps 工作组 (见小组章程[6]),致力于联合广大会员及社区成员深入探索协调多样的 MiniApp 生态、增强不同 MiniApp 平台间的互通性,从而最大程度地提升 MiniApps 与 Web 的融合,减少技术碎片化并降低开发者的学习成本。李安琪(阿里巴巴)、张永靖(华为)、祖明(百度)出任 MiniApps 工作组主席,联合主持小组的日常工作。
[6]https://www.w3.org/2021/01/miniapps-wg-charter.html
工作组章程详细介绍了小组的标准化范畴,开发中的规范提案包括:
MiniApp Manifest
MiniApp Manifest 以 JSON 文件方式对 MiniApp 进行全局参数配置,包括 MiniApp 的基本描述信息、页面路由信息、窗口显示样式、权限管理等。MiniApp Manifest 是 Web App Manifest 的扩展,它继承了 Web App Manifest 的部分基本成员属性(如name, lang等),同时基于运行环境的差异而扩展了版本管理、页面路由、窗口配置等相关的成员属性(如versionName)。
MiniApp Packaging
MiniApp Packaging 规范定义了 MiniApp 的标准化打包文件结构及其构造和解析方法,解决不同运行时环境识别、加载、缓存和更新MiniApp包时的互通性问题。一个 MiniApp package 包含了该应用所需的资源文件,包括文档模板、UI组件、样式表、JS脚本、本地化配置、安全签名、manifest文件等。
MiniApp Lifecycle
MiniApp 生命周期规范定义了 MiniApp 生命周期的事件与管理 MiniApp 应用及各个 MiniApp 页面的生命周期流程。通过实施本规范可以实现 user agent 对 MiniApp 全局应用生命周期与 MiniApp 页面生命周期的管理。MiniApp 生命周期规范将为 MiniApp 的跨平台互通提供基础,不同的 MiniApp 平台基于该规范可以实现一致性的 MiniApp 生命周期管理,进而实现一致性的 MiniApp 页面的展示。#p#分页标题#e#
MiniApp Addressing
MiniApp Addressing 机制定义了 MiniApp 的定位方式,规范了 MiniApp 的包信息、页面路径、参数信息的语法格式,以及这些语法部件在小程序中的含义。规范还定义了宿主平台对 MiniApp 定位协议的解引用算法,并提出Addressing 过程中的安全性相关的建议。
MiniApp Widget Requirements
MiniApp Widget 是 MiniApp 页面的一种特殊形式,Widget 可以仅占用屏幕部分区域,常可于为用户显示关键信息和响应简单的用户操作,例如在负一屏卡片中展现用户行程、订单配送等服务内容和简单交互。此需求描述了 MiniApp Widget 规范的场景需求和制定 MiniApp Widget 规范需要考虑的各个部分需求,其中包含了对 Miniapp 的 Manifest、Packaging、Lifecycle 等其他规范在 Widget 场景下需要做出调整的描述,以及 Widget 特定的需求描述,例如 Widget 与宿主原生应用之间的通讯。
欢迎加入 W3C MiniApps 工作组!
作为全球极具影响力的中立技术平台,W3C 拥有成熟的技术社区和发展流程,相应提案在此可以获得来自 Web 技术架构专家、国际化、无障碍、安全、隐私等层面的全方位审核,以及众多相关技术小组的意见输入,确保规范符合 Web 架构设计原则。
欢迎加入 MiniApps 工作组:
https://www.w3.org/2004/01/pp-impl/128558/join
工作组计划于2021年1月27日召开线上分享会,欢迎国内 MiniApp 厂商、感兴趣的社区开发者注册参会,与 W3C MiniApps 标准工作组主席、规范提案作者深入交流 MiniApp 开发的现状和未来的标准化计划。
活动注册链接(选择「使用 W3C 账号登陆」或「无账号直接输入邮箱访问」查看页面内容并注册):
https://www.w3.org/2002/09/wbs/1/W3C-MiniApps-QA/
期待大家一起参与 MiniApp 的技术讨论,共同推动 MiniApp 标准化,促进国际厂商间的广泛交流,推动产业界的互联互通,维护 One Web 的技术理念,让 MiniApp 技术为更广大的人群提供更加优质的服务。