当我们在 Web 里跑起了小程序
如果无法正常显示,请先停止浏览器的去广告插件。
1. 当我们在 Web 里跑起了小程序
香农
前端工程师
2. 目录
01 小程序 Web 模拟器原理揭秘
02 Web 模拟器可以用来做什么事情
03 思考与展望
3. /01
如何在 Web 里运行小程序
小程序 Web 模拟器原理揭秘
4. 支付宝小程序极简模型
WebView
Worker
数据变更
组件树维护
• 小程序的运行依赖特定环境,称为小程序容器
• 无法直接在浏览器里运行小程序
DOM视图刷新
生命周期
界面交互
事件回调
5. Web 容器极简模型
Iframe
Iframe
Web Workers
数据变更
组件树维护
•
为了在 Web 上运行小程序,需要模拟“跨线程”
架构
DOM视图刷新
生命周期
界面交互
事件回调
6. 原生能力模拟
基于浏览器 API / Node API 实现原生能力
缓存
多媒体
界面
Web API
位置
文件
网络
Web API / Node API
7. /02
Web 模拟器可以用来做什么事情?
Web 模拟器的创新玩法
8. 内部小程序研发
本地开发
埋点
验收
质量分析
质量保障
9. 创新玩法(1/5)- Web 研发
• 小程序命令行研发工具
• 轻量研发体验
10. 创新玩法(2/5)- 可视化埋点
• 可视化埋点
• 自动化埋点验证
• 规范埋点、提效
11. 创新玩法(3/5)- 场景验收
• 场景:⻚面状态或业务流程
• Mock + 模拟器渲染
• 场景录入 + 数据存储
• 随时体验一个产品的所有场景
12. 创新玩法(4/5)- 质量分析
• Puppeteer 驱动模拟器执
行分析任务
• 基于 Chrome 调试协议获
取渲染/网络/性能数据
• 定义指标出具质量分析
• 性能优化、内容审核
13. 创新玩法(5/5)- 质量保障
• 线上大量 JS 报错,很多是无关紧要的,作为开发者如何判断是否真的存在问题
• 将报错⻚面相关的数据灌注到模拟器中,对报错⻚面进行回放,确认当前⻚面是否存在潜在问题
• 自动化回放
14. 模拟器的创新玩法
预览
搭建
测试
回放
巡检
性能分析
15. /03
思考与展望
Web 模拟器给前端工程带来了什么
16. 给前端工程带来了什么(1/2)
研发体验
产品化
Chrome 模拟器 真机
JSAPI 不支持 部分支持 完全支持
同层组件 不支持 部分支持 开发效率 高 调试体验 好 模拟器 真机平台
准确性 较高 高
完全支持 交互体验 高 一般
高 一般 运维成本 低 高
好 一般 接入⻔槛 低 高
17. 给前端工程带来了什么(2/2)
接近真机的运行环境
繁荣的 Web 生态
测试框架
Chrome
DevTools 云开发
Puppeteer 端外投放
Mock 工具
18. 展望未来
• 模拟器距离真机效果仍有差距 — 云真机?
• 跨平台特性如何更好利用 — 端外投放、PC 小程序?
• …
19. 谢谢观看