运行环境差异
微信小程序运行在三端:iOS、 和 用于调试的开发者工具。
三个不同端口的脚本执行环境,以及负责呈现非原生组件的执行环境,均存在差异。
在iOS系统中,小程序的执行代码并非独立运行,而是依托于某个平台,该平台负责将代码进行渲染,并且要求运行环境必须支持iOS8及以上版本。
在技术层面,小程序的执行代码主要依赖X5引擎进行解析,而X5引擎的渲染功能则是基于53/57版本的内核实现的。
在开发工具中,小程序的代码执行环境为nwjs,其渲染过程亦由该平台负责。
尽管三端的环境是十分相似的,但是还是有些许区别:
由于ES6的语法支持存在差异,开发者可以通过启用将ES6代码转换为ES5代码的功能来避免遇到问题。
微信小程序的样式渲染存在差异,即便通过启用样式补全功能可以解决多数问题,但仍然建议开发者在iOS系统和系统上分别验证小程序的实际显示效果。
ES6 转 ES5
在0.10版本及后续的开发工具中,系统将自动将开发者的ES6语法代码转换成兼容性更强的ES5代码,从而有效缓解因环境差异引起的开发难题。
样式补全
激活此功能后,开发工具将自动识别并填补缺失的样式,确保在旧版操作系统中的正常展示。尽管这能解决大多数问题,但仍然建议开发者在iOS及平台上分别验证小程序的实际运行效果。
样式补全
兼容
小程序的功能持续扩充,然而,旧版微信客户端无法识别这些新增功能,因此在使用这些新特性时,必须进行相应的兼容处理。
在组件和API等页面上的描述中,会明确标注出各个功能所兼容的版本信息。
您可以通过微信小程序的API接口或者微信小程序的官方文档来查询到小程序所使用的库版本信息。
您可以使用微信小程序的官方平台来确认,在该版本的基础库中,是否能够直接调用相应的API或使用特定的组件。
获取系统信息
同步
stemInfo({
微信客户端及小程序的基础库版本标识采用格式..(主版本.次版本.修订版)。开发者可依据此版本号进行相应的兼容性处理。
reversionv1, v2{
该基础库版本下直接使用对应的API或者组件的API
wx.()这一功能可用来检测小程序的API、回调、参数、组件等在当前版本中是否能够正常使用。这一接口自基础库的1.1.1版本起便已提供支持。
参数说明:调用格式为{API}的第一个参数、第二个参数、第三个参数以及第四个参数,或{API}的第一个参数、第二个参数、第三个参数。例如:
{API} 代表 API 名字
{} 代表调用方式,有效值为,,,
{} 代表参数或者返回值
{} 代表参数的可选值
{} 代表组件名字
{} 代表组件属性
{} 代表组件属性的可选值
例子:
etoothAdapter')
标准库兼容性问题
微信小程序的兼容性问题主要源于微信自身存在的缺陷,以及目标平台对标准库支持程度的差异。例如,我之前遇到的问题就是典型的标准库兼容性问题。针对此类问题,我们可以通过打补丁的方式解决,即从其他来源寻找较为完善的js代码,并将其复制到我们的项目之中。