运行环境
微信小程序运行在多个平台上:iOS/iPadOS微信客户端,Android微信客户端,etc.
- iOS JSCore+WKWebView
- Android V8+Mobile Chromium
- Windows Chromium+Chromium
区别:
JS 语法和API支持程度不同。语法可以使用ES6转ES5;支持程度通过polyfill
ECMAScript 的支持情况
- 不支持使用
eval
执行 JS 代码 - 不支持使用
new Function
创建函数-
new Function('return this')
除外
-
- 不支持使用 Proxy 对象
core-js
Polyfill
语法 代码转换工具
- iOS 15 及以下的 Promise 是一个使用 setTimeout 模拟的 Polyfill
如何判断当前环境需要哪些 Polyfill & 代码转换目标
小程序基础库,微信客户端,操作系统版本
参考这个开源库
小程序的生命周期
restartStrategy
onSaveExitState
image.png
更新机制
开发者在发布新版本后,Native 会存在很多时机检查版本更新,并运行小程序的代码更新。
1.启动时同步更新
2.启动时异步更新(冷启动时异步)
在启动时异步更新的情况下,开发者手动提示用户更新
const updateManager = wx.getUpdateManager()
Magic
模拟小程序生命周期,和对应的微信任意小程序视图