⭐️ 本文首发自 前端修罗场(点击即可加入),一个专注 Web 技术、答疑解惑、面试辅导、职业发展的社区。

本文是系列文章,将会解读 W3C 小程序白皮书第 2 版(最新版),这份白皮书现在也成为了各厂研发自己小程序平台的标准。目前,市面上已经有很多成熟的小程序开发框架了,如 uniapp, taro, modernjs 等等。但是,我觉得要真正精通小程序,一定要理解小程序平台的内核,它的工作原理,这是根本。所以,我想给大家讲解一下小程序平台白皮书。

本文将为大家介绍小程序的由来。

小程序白皮书解读——由来

  • 背景
  • 什么是小程序
  • 小程序与 PWA 的差异
  • 应用案例
    • AR
    • 智能交通
    • IoT
    • TV

背景

虽然原生应用在我们的日常生活中很受欢迎,但仍有很多问题亟待解决,例如:

  • 用户在从原生应用获取服务之前,往往需要经历下载->安装->注册应用的过程。

  • 由于存储能力的限制,用户只能在手机上保留有限数量的原生应用。

  • 不同的原生应用程序之间共享数据并不容易。

  • 要开发原生应用程序,开发人员可能需要学习一些新的编程语言。

  • 为了提供与原生应用程序相同的服务,开发人员可能需要为不同平台维护重复的产品。

解决上述问题,曾经有研发人员认为,Web 可以避免这些问题,但到目前为止 Web 仍然不完美。

因为与原生相比,要利用系统提供的能力/API 并不容易。

此外,通常很难设计一个性能实际上可以匹配或超过类似原生应用程序的 Web 应用程序。

除此之外,在移动设备上,用户要频繁获取浏览器之外的服务或内容。这样频繁的操作显然不够友好。

此外,有时用户可能希望与应用程序共享一些数据。例如当前设备的个人手机号码或联系人列表,用户在 Web 上给予许可的方式并不友好。

于是,小程序出现在研发人员的想法中。

什么是小程序

小程序是一种新的移动应用程序格式,是一种依赖 Web 技术(尤其是 CSS 和 JavaScript)并与原生应用程序功能集成的混合解决方案。

而超级应用是托管和支持其他应用程序(即小程序)的软件平台,通过使用平台的资源来实现它们的执行。同时,因为小程序能够在一些超级应用上的使用,就变得流行起来,这就有助于填补 Web 和原生应用程序之间的空白。例如,它具备如下特点:

  • 免费安装的。
  • 有多个 WebView 以提高性能。
  • 它提供了一些机制来通过本机访问操作系统功能或数据。
  • 内容/数据通常更值得信任,因为应用程序需要经过平台验证。
  • 一个小程序可以分发到多个小程序平台(Web、本机应用程序,甚至操作系统)。 这些平台还提供了小程序的入口,以确保用户可以轻松发现它。

小程序与 PWA 的差异

小程序并非旨在取代渐进式 Web 应用程序 (PWA)、原生应用程序或 Web。

从广义上讲,这些技术之间的显着差异之一是执行环境。 PWA 可以在浏览器中几乎任何支持 Web 的环境中运行,而 小程序 则绑定到特定平台或超级应用程序。另一个重要的区别是分发机制,小程序打包依据自身,而 PWA 的资源则分布在 Web 上。

两种技术在编码方面都使用相似的编程和标记语言以及基于 CSS 的样式表。 小程序实现了基于 HTML 子集的专用领域特定语言以及用于数据绑定和事件管理的特定机制,遵循 MVVM 范式和虚拟 DOM 管理。 小程序供应商定义了类似的 UI(用户界面)元素,这些元素在 HTML 中并不总是具有直接等效的元素。

在服务方面,PWA 和小程序开发者可以访问具有相同目的和等效功能的 API,但不遵循确切的规范。

小程序供应商通过其渠道定义了面向应用发布和分发管理的专有 API。其他专用 API 与具体场景和运行平台相关联。 例如,使用设置提醒、接听电话和触发警告的服务。尽管两种技术都有相似的 API 和服务,但每种应用程序类型的 API 规范之间存在很大差距。 PWA 依赖于标准的 Web API,而小程序实现非标准的 API 以最大限度地发挥平台的功能,例如特定于设备的功能和供应商专有的服务。

根据实现的不同,小程序用户代理可以是操作系统、超级应用程序或任何其他基于不同渲染引擎和 WebViews 的托管平台。如下图所示, 小程序用户代理的架构不同于 PWA 用户代理。


下表也总结了一些差异:

应用案例

AR

智能交通

IoT

TV


可以看到,小程序在多个领域已经有了很成功的落地应用。

【小程序】小程序研发平台解读 — 由来相关推荐

  1. asp.net+sqlserver+微信小程序社区型果蔬配送平台-计算机毕业设计源码11635

    摘  要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区型果蔬配送平台小程序被用户普遍使用,为方 ...

  2. 用小程序搭建智能家居平台靠谱吗?

    在智能家居巨大蛋糕的驱使下,各大厂商和平台都纷纷构建自己的智能家居生态平台,以下以3家头部企业为例,一窥当前智能家居头部玩家的玩法. 海尔:U+智慧生活平台 作为领先的中国家电品牌,海尔在智能家居领域 ...

  3. DTS-SHOP微信小程序多店铺商城平台java源码

    介绍: DTS-SHOP微信小程序多店铺商城平台源码,基于 微信小程序 + springboot + vue 技术构建 ,支持单店铺,多店铺入驻的商城平台.项目包含 微信小程序,管理后台. 基于jav ...

  4. 小程序成为多社交平台引流利器

    小程序是一种不需要下载安装即可使用的应用.从2017年微信首次推出小程序开始,经过四年发展,各大互联网巨头纷纷推出自己的小程序应用平台,小程序成为真正意义上的"互联网新技术标准". ...

  5. 【微信小程序】车位在线销售平台(三)

    [微信小程序]车位在线销售平台(三) 文章目录 [微信小程序]车位在线销售平台(三) 前言 一.背景色 二.个人信息 三.车位订单 四.常用功能 五.总结 前言 在前一章节中已经介绍了关于首页开发的大 ...

  6. 微信公众平台、微信公众平台.小程序、微信.开放平台三者关系及unionid

    以下内容,仅限于根据自己开发以及阅读微信文档总结,错误之处敬请指出,共同进步! 一.微信公众平台.微信公众平台.小程序.微信.开放平台登录地址 项目 微信公众平台 微信公众平台.小程序 微信.开放平台 ...

  7. 【微信小程序】粤语教学平台-粤言粤语

    展示视频 粤言粤语小程序演示视频 1 项目简介 1.1 项目背景 1.1.1 创意来源 根据中共中央办公厅.国务院办公厅印发的<关于实施中华优秀传统文化传承发展工程的意见>,我小组计划开发 ...

  8. 微信群打卡小程序_用微信小程序“小打卡”,打造免费的阅读平台!

    小归 一直和微信小程序--"小打卡"的创始人保持着微信通讯,也写了<快捷|以"小打卡"为例带你玩转微信小程序!>,这篇文章主要是真对如何打卡来写的, ...

  9. 微信小程序+阿里物联平台+合宙Air724UG搭建无服务器物联系统(三)---微信小程序直连阿里物联平台AliIoT

    前一段时间集中设计系统整体方案,物联网平台搭建.小程序编写,硬件电路设计.SOC单片机程序开发,自己挖的坑太大了,填起来真是费劲啊!整个年假都用来填坑了,也没有时间编写博文,今天忙里偷闲集中整理一下开 ...

最新文章

  1. Android人脸识别App(带web上传注册信息)
  2. 订单分类和评分--vue.js学习笔记2
  3. amba simple class驱动_学习笔记:class加载器和双亲委派模型
  4. mui app webview 沉浸式导航_AR实景导航 轻松找到网约车!高崎机场推出网约车专属上车区等便民举措...
  5. sTC8G1K08+通过串口显示内部电压_基于51单片机的数字电流电压表
  6. java开发中准则怎么写_Java开发中通用的方法和准则20条
  7. 【Python学习】 - anaconda中spyder的常用快捷键总结
  8. Android 轻松实现仿淘宝地区选择
  9. 苹果10亿美元收购英特尔手机基带业务 买下一颗iPhone“定芯丸”
  10. java tomcat 读取配置文件端口_跟我学Java编程—应用读写项目配置文件的Properties类...
  11. 【转】memcache-client-forjava
  12. 菜鸟写Python-Pycharm执行Scrapy项目报:Scrapy-no active project 和(或)Unknown command: crawl错误
  13. 往服务器复制文件提示拒绝访问,Win10系统复制文件提示目标文件夹被拒绝访问的解决方法...
  14. 浏览器兼容测试工具-IETest
  15. HHKB连不上Ubuntu
  16. BPM平台在企业业务系统中使用的价值讨论
  17. supervisor搭建与配置
  18. Maven加速编译技巧
  19. 国内十大资质正规黄金交易平台排名(2023名单汇总)
  20. 二维码的制作Java篇

热门文章

  1. 通达信股票交易数据接口--API量化交易
  2. Android P 通过FTM(Fine Time Measure) RTT(Round Trip Time) 实现室内定位
  3. Springboot---JPA配置
  4. 美摄问答室|美映 VS 美摄云剪辑
  5. 快手某程序接口大全关注.点赞.评论
  6. Windows11 下 Fliqo 的数字时钟屏保
  7. 实现iconfont图标渐变
  8. 迭代次数表达的宇称不守恒现象
  9. 【python】 给目录内文件批量改名
  10. 装修如何省钱,极家好不好?