眼下小游戏特别火,不少团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究。但从微信官方文档看 , 却能发现不少坑。
一、运行环境的坑
首先微信小游戏是一个不同于浏览器的 JavaScript 运行环境,没有 BOM 和 DOM API,所以我们第一个遇到的就是API兼容性问题。
1、API兼容性
1.1、网络API
BOM的核心是windows,表示的是一个浏览器的实例,在网页中自定义的任何一个对象、变量和函数,都以windows作为其全局对象;缺乏Dom意味着http、websocket及本地存储等通信用的API使用就会遇到问题,好在微信提供了这两个API的私有实现,我们要做的就是适配。
适配的基本思路是检测是否是运行再微信平台,然后利用JS动态语言特性, 对BOM的API进行动态重写 , 优缺点如下:
1.优点是API调用者无需做任何改动,适配成本几乎为0。对微信小游戏和浏览器之间的运行环境差异无感知,非常友好。2.缺点是会增加代码体积,但代码体积的增加带来的损失几乎可以忽略不计。
这种适配方案的性价比很高, 适配HTTP代码示例如下: