你踩过几个?盘点微信H5小游戏开发中的那些坑

眼下小游戏特别火,很多团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究。但从微信官方文档看 , 却能发现很多坑。jquery

1、运行环境的坑web

首先微信小游戏是一个不一样于浏览器的 JavaScript 运行环境,没有 BOM 和 DOM API,因此咱们第一个遇到的就是API兼容性问题。小程序

一、API兼容性windows

1.一、网络API微信小程序

BOM的核心是windows,表示的是一个浏览器的实例,在网页中自定义的任何一个对象、变量和函数,都以windows做为其全局对象;缺少Dom意味着http、websocket及本地存储等通讯用的API使用就会遇到问题,好在微信提供了这两个API的私有实现,咱们要作的就是适配。浏览器

适配的基本思路是检测是不是运行再微信平台,而后利用JS动态语言特性, 对BOM的API进行动态重写 , 优缺点以下:服务器

1.优势是API调用者无需作任何改动,适配成本几乎为0。对微信小游戏和浏览器之间的运行 环境差别无感知,很是友好。 2.缺点是会增长代码体积,但代码体积的增长带来的损失几乎能够忽略不计。微信

这种适配方案的性价比很高, 适配HTTP代码示例以下:websocket

1.二、微信的模块化

微信小游戏提供了 CommonJS 风格的模块 API,能够经过 module.exports 和 exports 导出模块,经过 require 引入模块 . 这与浏览器引入JS文件的方式大相径庭 , 中间有一个隔离层。网络

让咱们举个例子来讲明模块化带来的问题。

一般咱们在浏览器上使用某个js文件里面自定义的类,经过

标记引入JS文件能够直接使用:
但在微信中不能够这样.须要把API都导入到一个对象上,使用时在加这个前缀.致使不少代码须要修改,那么如何避免增长这个前缀呢?

针对这种状况 , 解决的思路是将全部外部须要用到的方法和对象动态挂靠到window对象上去,将上面的代码稍作修改示例以下:

二、工做流变化

因为微信小游戏没有Dom和Bom,因此不少依赖Dom和Bom的库都不能直接用,好比 jquery。

微信的这套环境会或多或少会引发咱们的工做流变化,使用第三方游戏开发引擎(好比Cocos Createor/Egret/Laya)能够弥补这些问题带来的损失。

2、资源限制

一、每一个小游戏容许上传的代码包总大小为 4MB。

解决方法1:压缩js文件,图片资源放在服务器上作预加载。 解决方法2:使用第三方引擎的资源管理功能。

二、微信小程序要求开发者的服务器 支持https,wss协议。

解决方案:服务器启用HTTPS。实现的方式有不少,推荐Nginx反向代理。

3、发布审核

小游戏开发完成后发布上线须要具有以下的资格:

1: 服务器域名备案

2: https wss支持

3: 软件著做权证书 复印件+盖章签名

4: 微信公众平台账号及AppID

5: 开发者工具wechat_devtools_1.02.1803210_x64

6: 游戏自审报告复印件+签名

7: iOS开发中账号(可选,没有则填空)

8: 游戏版号(开通微信支付须要)

9:企业开发者身份+对公账号(开通微信支付须要)

相关文章
相关标签/搜索