MiniApp 标准化探索:应对小程序技术碎片化

W3C 中国区成员:
大家好!

小程序(MiniApp)是运行在客户端基于 Web 
技术结合了原生应用技术实现的应用,其在亚洲国家尤其是中国的使用及关注度日益提升,与此同时,越来越多国际厂商也对 
MiniApp 表现出浓厚兴趣。

为了增强不同平台间的互操作性,MiniApp 厂商通过在 W3C Web 
中文兴趣组的合作联合发布了一份小组笔记《MiniApp 标准化白皮书》,初步探索了 
小程序的标准化构想:
https://w3c.github.io/miniapp/white-paper/

随之推动成立了 W3C MiniApps 生态社区组,以便全球 Web 社区都可以加入到围绕 
MiniApp 的讨论中来。MiniApps 
生态社区组旨在探讨、孵化与小程序功能相关的标准化提案。现已孵化并持续完善的技术提案包括:

* MiniApp URI Scheme
   https://w3c.github.io/miniapp/specs/uri/

* MiniApp Lifecycle
   https://w3c.github.io/miniapp/specs/lifecycle/

* MiniApp Manifest
   https://w3c.github.io/miniapp/specs/manifest/

* MiniApp Packaging
   https://w3c.github.io/miniapp/specs/packaging/

* MiniApp Widget Requirements
   https://w3c.github.io/miniapp/specs/widget-req/

【URI Scheme】定义了 MiniApp URI scheme 的语法,以及解引用 MiniApp URI 
scheme 的过程。MiniApp URI scheme 语法包含基于 URI 规范之上的 MiniApp URI 
具体语法组件的规格说明。实现本规范,能使得 user agent 能够定位 MiniApp 
的资源。

【Lifecycle】定义了 MiniApp 生命周期的事件与管理小程序应用及各个 MiniApp 
页面的生命周期流程。通过实施本规范可以实现 user agent 对 MiniApp 
全局应用生命周期与 MiniApp 页面生命周期的管理。在开发 MiniApp 
时,了解应用与页面的生命周期状态,可以帮助提供更好的用户体验。MiniApp 
生命周期包括一系列事件,MiniApp 可以利用这些事件来基于生命周期状态变更 
MiniApp 的行为。

【Manifest】定义了基于 JSON 格式的 Manifest 文件,使开发者可通过 Manifest 
文件设置 MiniApp 的基本信息、窗口样式和页面路由等信息。这里,MiniApp 
基本信息包括但不限于 MiniApp 
ID、名称、版本名称、版本号以及最小平台版本等;窗口样式 window 
包括但不限于导航栏、标题和窗口背景等;pages 用于指定页面路由信息;widgets 
用于描述卡片信息。目前提案只是列出 MiniApp Manifest 
的一个基础子集,后续会根据不同的场景需求进行渐进式更新和补充。

【Packaging】描述了一个标准化的 MiniApp 
包构建方式,提供一种标准的包结构描述,将小程序页面所需的所有静态页面模板、CSS 
和 JavaScript 
文件,和配置文件(Manifest)打包在一起,允许在任何运行时环境可使用。

小程序包资源,包含一个配置文档,位于包的根目录下。配置文件应包括整个小程序的概述(页面描述及其对应路径,用于页面定位和开启)。包含 
JavaScript 
代码的应用级逻辑文件,一个或多个页面文件,包含页面结构的模板代码、页面样式的 
CSS 代码和页面逻辑的 JavaScript 代码。小程序包应支持数字签名验证。

小程序运行时环境,可通过标准的文件格式、媒体类型识别小程序包文件。获取(Fetch)小程序包后,通过标准化的解引用,将所有静态页面模板、CSS 
和 JavaScript 
文件缓存在设备上。在下次更新之前,这些资源始终可用,无需重新获取(Fetch)小程序包文件。启动方式上,小程序无需网络也可以正常启动,运行时环境根据小程序标准配置文件的描述(manifest),从包缓存路径中定位指定的启动页面,启动小程序。

【MiniApp Widget】是 MiniApp 页面的一种特殊形式,与页面不同,Widget 
可以仅占用屏幕的一个区域(而不是全部),用于为用户显示关键信息和响应简单的用户操作,例如显示用户所在地的天气,跟踪用户当前的行程状态并提供进一步的操作。

在移动操作系统中,MiniApp Widget 
可以被应用于智能助理等场景,某些场景下用户可以订阅和固定显示 
Widget,另外一些场景下 Widget 可以根据上下文需求动态地显示和消失。
由于 MiniApp Widget 是 MiniApp 的一个组成部分,因此相关的标准部分会在 
MiniApp 的其他相关文档中描述,本文档主要专注于定义 MiniApp Widget 
规范需要考虑的特定需求和对其他部分依赖的描述。

W3C MiniApps 生态社区组对公众开放,欢迎加入并参与小组讨论,让未来的 MiniApp 
标准能够实现大家的想法和需求:
https://www.w3.org/community/miniapps/

如需任何信息或有任何疑问,欢迎随时联系我们!

祝好!
贾雪远
-- 
Xueyuan Jia - W3C Marketing and Communications
mailto: xueyuan@w3.org; tel: 186 1297 0645

Received on Wednesday, 8 July 2020 08:20:03 UTC