微信小程序开发“兼容性问题”解答

2018/8/21

  在微信小程序开发中,经常会遇到一些兼容性的问题,我最近就遇到了一个问题,就是在时间字符串转化为时间戳的方法中,我用的Date.parse(newDate())这个方法,但是在微信开发者工具中这个方法正常实现,但是在一些iphone设备和安卓的部分设备中不会实现相关功能,为了解决这个问题我只能导入了momentjs,不在调用系统方法了。这里我们就来讨论一下一些兼容性问题。

  1、运行环境差异

  微信小程序运行在三端:iOS、Android和用于调试的开发者工具。三端的脚本执行环境以及用于渲染非原生组件的环境是各不相同的:

  在iOS上,小程序的javascript代码是运行在JavaScriptCore中,是由WKWebView来渲染的,环境有iOS8以上,在Android上,小程序的javascript代码是通过X5JSCore来解析,是由X5基于MobileChrome53/57内核来渲染的。在开发工具上,小程序的javascript代码是运行在nwjs中,是由ChromeWebview来渲染的。

  尽管三端的环境是十分相似的,但是还是有些许区别:

  ES6语法支持不一致语法上开发者可以通过开启ES6转ES5的功能来规避。

  wxss渲染表现不一致尽管可以通过开启样式补全来规避大部分的问题,还是建议开发者需要在iOS和Android上分别检查小程序的真实表现。

  2、ES6转ES5

  在0.10.101000以及之后版本的开发工具中,会默认使用babel将开发者ES6语法代码转换为三端都能很好支持的ES5的代码,帮助开发者解决环境不同所带来的开发问题。

  3、样式补全

  开启此选项,开发工具会自动检测并补全缺失样式,保证在低版本系统上的正常显示。尽管可以规避大部分的问题,还是建议开发者需要在iOS和Android上分别检查小程序的真实表现。

  4、样式补全

  1)兼容

  小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容。文档会在组件,API等页面描述中带上各个功能所支持的版本号。可以通过wx.getSystemInfo或者wx.getSystemInfoSync获取到小程序的基础库版本号。可以通过wx.canIUse来判断是否可以在该基础库版本下直接使用对应的API或者组件

  2)Javascript标准库兼容性问题

  微信小程序的兼容性问题除了微信本身的Bug外,大部分是目标平台对JavaScript标准库支持程度不同造成的。对于这类问题我们可以打补丁,从其他地方找到比较完善的js代码,然后我们拷贝到我们的项目中。

更多新闻

企业网站建设有哪些安全测试方法?
网站设计如何提升高级新鲜感
网站设计中的3D元素:塑造独特视觉体验与提升品牌价值
如何让网站的视觉简洁,国际化?