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

一、运行环境的坑

首先微信小游戏是一个不同于浏览器的 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代码示例如下:

1.2、微信的模块化

微信小游戏提供了 CommonJS 风格的模块 API,可以通过 module.exports 和 exports 导出模块,通过 require 引入模块 . 这与浏览器引入JS文件的方式截然不同 , 中间有一个隔离层。

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

通常我们在浏览器上使用某个js文件里面自定义的类,通过

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

针对这种情况 , 解决的思路是将所有外部需要用到的方法和对象动态挂靠到window对象上去,将上面的代码稍做修改示例如下:

2、工作流变化

由于微信小游戏没有Dom和Bom,所以很多依赖Dom和Bom的库都不能直接用,比如 jquery。

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

二、资源限制

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

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

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

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

三、发布审核

小游戏开发完成后发布上线需要具备如下的资格:

1: 服务器域名备案

2: https wss支持

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

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

5: 开发者工具wechat_devtools_1.02.1803210_x64

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

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

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

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

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

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

    眼下小游戏特别火,不少团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究.但从微信官方文档看 , 却能发现不少坑. 一.运行环境的坑 首先微信小游戏是一个不同于浏览器的 JavaScript ...

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

    眼下小游戏特别火,不少团队也陆续启动了微信小游戏的项目,并于立项前期进行技术预研究.但从微信官方文档看 , 却能发现不少坑. 一.运行环境的坑 1.API兼容性 1.1.网络API BOM的核心是wi ...

  3. 微信H5小游戏互动营销的使用场景

    H5游戏营销的定义是借助小游戏通过微信渠道运营推广的形式,而且H5小游戏营销成本低,同时满足于用户碎片化时间,通过用户间裂变传播的形式为企业或品牌带来更多的流量和收益!今天就为大家列举下H5游戏定制开 ...

  4. 盘点在H5小游戏里常用的动效制作套路

    近年来,越来越多的自带绚丽动效的H5小游戏如雨后春笋一般冒出来,而也正是这些炫酷的交互动效,才能够成功地吸引住用户的眼球,让用户为此驻足. 而「动效制作」也伴随着H5的大热而火遍前端圈及设计界,下面就 ...

  5. Unity对H5小游戏开发的支持——Project Tiny

      随着微信小游戏跳一跳的大火,游戏市场对于H5小游戏的开发逐渐火爆,作为一名Unity游戏开发从业者,大家对于Unity中开发小游戏的支持也很关注!近日Unity官方发布了Project Tiny ...

  6. 小游戏开发 小程序app游戏开发 H5小游戏开发

    目前有很多人对小游戏的理解都不同,有的人认为小游戏是H5嵌入形式的,也有的人认为小游戏是就几兆的程序 其实大家认为的都是正确的,没有任何问题.那么今天给大家讲下小游戏之间的区别 1.H5小游戏嵌入:这 ...

  7. protobuf 微信小程序_Protobuf在微信小游戏开发中的使用技巧

    微信小游戏发布后,许多 HTML5 游戏开发者希望把现有的 HTML5 游戏迁移到微信小游戏中,但由于一些技术上的问题导致进程卡壳.通过梳理Egret社区.白鹭小游戏开发技术讨论群等途径的反馈后发现, ...

  8. 吐槽laya:H5小游戏开发应该用什么引擎好?laya、cocos还是unity?

    我看有人推荐laya,放在H5小游戏的前三排名,这压根不靠谱. laya只能算个半成品,整体非常垃圾,如果是首次选择游戏引擎,至少转去cocos,实在选laya,那也没办法了. 下面说说laya有什么 ...

  9. 微信h5小游戏作品欣赏:详解微信h5如何制作

    随着移动信息技术的发展,微信h5页面展示也有了新的创新,下面分享一款好玩的TOM游戏案例,一起来看看吧.H5有戏作为一种时下最受欢迎的推广方式,H5具有交互性好.易传播等优势. 制作h5页面流程:需求 ...

最新文章

  1. 谈 Kubernetes 的架构设计与实现原理
  2. 丰富多彩的Android onTouch事件
  3. 设置共享,实现Linux和Windows之间的共享
  4. DP mixture model
  5. angular2.0学习日记1
  6. 【机器学习】从Few-shot Learning再次认识机器学习
  7. android各层之间,Android运行程序在各层架构之间的相互关系
  8. Java黑皮书课后题第8章:***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵。程序提示用户输入矩阵的行数。然后显示最大的子方阵的第一个元素、行数
  9. Angular 路由时如何在 Component 之间传递参数
  10. svm回归matlab工具箱很慢,PSO优化SVM参数进行回归预测,结果很不理想
  11. 【工程项目经验】Linux网络盘挂载方法
  12. PostgreSQL 分库分表 插件之一 pg_shard
  13. 【转】几款移动跨平台App开发框架比较
  14. 《JavaScript高级程序设计》Chapter 10 DOM
  15. matlab矩阵运算rank,Matlab矩阵运算
  16. 137.DOM效果实现:百度换肤
  17. 磁共振线圈分类_磁共振线圈的发展历程
  18. 申宝投资-昨日三大指数缩量探底回升
  19. EC esayClick 自定义浮窗
  20. E280 P0410故障修复

热门文章

  1. 计算机毕业设计javaweb的小区停车收费系统
  2. openlayers前端地图框架
  3. 电子工程师必备技能,根据文件图或者实物进行PCB原理图的反推
  4. 如何在三维可视化平台中接入实时的安防视频
  5. 湖北移动湛颖:撇开浮夸,正视差距
  6. OA办公系统(可用来做课设,结果展示及部分代码)
  7. 建筑的永恒之道----道之核心
  8. linux在文件最后追加,Linux 向文件末尾追加命令
  9. 能力风暴机器人AS-MF2011循迹算法
  10. 【观察】紫光云:十年创新筑牢发展底座,政企云市场打出逆袭战