环境:(ccc-v1.9.1, wx-v1.02.1804251)

  1. 微信小游戏禁止了动态生成并执行代码的功能,window.eval()、 new Function() ,这些都不能用了。

  2. 微信小游戏中window.atob window.btoa 未定义,
    解决:用了这个Base64.js 库。

  3. protobuf.js 6.x 中用到了 new Function(),所以不能用。
    解决:改用了protobuf.js的分支 protobuf.js 5.x。

  4. XMLHttpRequest 在微信小游戏中实际上会被替换成,或最终调用wx.request。
    发送消息时, 在都发送 uint8Array 类型的数据的情况下,
    --->在web中,服务端能收到arrayBuffer二进制流。
    --->在微信小游戏中,服务端收到的是一个string, 格式会遵从微信API wx.request的发送规则 (见下图)。

猜测在web中会自动将uint8Array 转为ArrayBuffer然后发送。
而在微信小游戏中,uint8Array 会被认为是一个table。如下:

当header为 ("Content-Type", "application/octet-stream")时,服务器收到的结果:

当header为 ("Content-Type", "application/x-www-form-urlencoded")时,服务器收到的结果:

当header为 ("Content-Type", "application/json")
如果发送的数据格式从uint8Array改成Array,服务器收到的结果:

结论:(1).如果要发二进制,务必务必要在发送前将数据格式转为ArrayBuffer。
(2).微信小游戏文档里的 wx.request 和微信小程序里的 wx.request 其实是一回事,但是微信分开来写了,并且表述的内容不一致(是两个人分别写的吗?坑爹啊),
小游戏里的文档里这个wx.request的参数有dataType,没有 responseType。并且,经过实测 必须制定responseType : "arraybuffer", 才能让返回数据为 ArrayBuffer, 只制定dataType没卵用,这点与文档描述不符。

  1. json文件,在web和模拟器环境加载后会直接变为 object/Array 类型,在小游戏中加载后,是一个 string。原因:我的json文件是在C#中导出的,导出时是带BOM的UTF8编码的文件。 因此json的首字符被添加了一个AscII码为65279的字符。
    临时解决: 在加载完后判断类型,如果为string,则去掉,并且去掉第一个AscII码为65279的字符。最终: 在C#导出时,去掉了BOM。
    另外,使用cc.loader.loadResDir 加载Json文件目录时, 在web下正常, 在微信中会返回一个空的Array。

  2. ccc发布到小游戏中时,不勾选调试模式的话,为节省代码文件大小,所有自定义类型会被混淆和简化,所以不能写 xxx === "某自定义类型名" 这样的判断代码,或其他写死类型名的代码。

  3. 手机中预览黑屏。
    原因:打开手机上调试模式,对应模拟器中的“不校验安全域名”,如果不打开调试模式,微信不允许访问那些没有添加到安全域名的链接。另外,如果已经正确配置了域名,却没有取消勾选“不校验安全域名”, 也是不能的。解决: 在后台配置正确域名,并取消勾选“不校验安全域名”。

  4. ccc提供的AudioSrouce 里的mute 和 pause 等,在小游戏里无效。最后换成了AudioEngine。

  5. ccc的button有问题: 按住A按钮,再按住B按钮,松开A触发点击事件打开界面,遮挡B, 这时送开按B的手指,仍然会触发B按钮的点击事件。

Cocos Creator 微信小游戏 填坑记录相关推荐

  1. cocos creator 微信小游戏接口

    cocos creator 微信小游戏接口 /** @Description:微信小游戏* @version: * @Author: lvpeijun* @Date: 2019-12-02 10:43 ...

  2. 解决cocos creator微信小游戏本地缓存文件超过限制问题

    cocos creator微信小游戏开发,如果游戏包内资源超过包体大小限制,那么可以通过远程加载的方式加载资源(代码脚本文件除外). 小游戏在迭代过程中因为缓存资源的积累,在加载资源的时候会出现超过缓 ...

  3. 微信小游戏 资源服务器,Cocos Creator 微信小游戏 远程资源设置

    版本:2.3.4 参考: cocos教程:发布到微信小游戏 因为微信小游戏有包体大小限制. 主包4M 分包最大4M 一共最多16M 那么假如我们的游戏有个20M,50M,那就放不下了.只能放到远程服务 ...

  4. Cocos Creator 微信小游戏 分包设置

    版本:2.3.4 参考: cocos教程:分包加载 在微信小游戏中使用分包.因为微信小游戏有包体限制. 主包最大只能4m,分包最大4m,一共最多16m.所以主包只放代码,而图片.json等资源都设置为 ...

  5. Cocos Creator 微信小游戏苹果手机锁屏卡死的坑

    在制作小游戏项目时遇到了 苹果系列手机 只要游戏过程中进行锁屏后解锁时,整个手机或微信会卡个几秒甚至会黑屏! 所以就这个问题进行了各种 onshow/onhide 的操作试验. 第一种:在onshow ...

  6. 微信小游戏踩坑记录(二)

    2019独角兽企业重金招聘Python工程师标准>>> 微信视频组件 这次是关于视频组件的,creator的视频组件在小游戏中是没有用的,只能使用小游戏自带的组件.使用小游戏Vide ...

  7. Cocos Creator微信小游戏添加banner广告

    学了小游戏开发也有几个月了,这边写一下这几个月以来遇到的坑. 首先是添加banner广告 看过很多个写微信广告的写法.感觉其实是在误导萌新,这是一般别人的例子 let winSize = wx.get ...

  8. Cocos Creator 微信小游戏无法正确显示头像 解决方案

    常见的获取微信头像方法 UserInfo:  用户授权成功后 返回的微信用户信息 UserInfo 结构体信息详情: 进入 微信如何登陆授权: 进入 let url = userInfo.avatar ...

  9. cocos creator微信小游戏,使用微信云开发实现“世界排行榜”

    微信提供的子域只能实现好友排行,我们一般希望实现所有玩家的世界排行榜. 那么问题来了,我们怎么获取所有玩家的openid?其实很简单,就是玩家打开游戏或排行榜时,请求玩家授权,这样就拿到openid了 ...

最新文章

  1. C# 世界坐标 页面坐标 PageUnit PageScale
  2. ThinkPHP关联模型详解
  3. angular模块库开发实例
  4. 形而上者谓之道,形而下者谓之器
  5. 开启linux ssh
  6. centos6.5安装mongodb2.6
  7. IRC 聊天工具(xchat,chatzilla,pidgin)入门教程
  8. Eclipse Debug调试详解
  9. sql 孩子兄弟表示法 所有子节点_数据结构,二叉树遍历,孩子兄弟表示法,算法设计题...
  10. 微信小程序源码免费下载
  11. 92年程序员发帖晒薪资称自己很迷茫,网友:老弟你可以了
  12. 无法启动此程序因为计算机中丢失adapt,【完美解决】Wi7中NVIDIA GT540M安装程序无法找到和你现有硬件兼容的任何驱动程序,安装程序将会退出.doc...
  13. jsp+ssm计算机毕业设计st音乐网站论文【附源码】
  14. 仿淘宝商品详情页[带有视频和图片的轮播功能]
  15. 网络营销推广怎么做 一封神奇的文案策划背后的真相
  16. 【机器学习】评价指标PSI
  17. 前沿人物(零)——伯特霍尔德霍恩
  18. 制作XPE启动光盘的教程
  19. 电脑桌面便签如何按农历日历设置便签提醒事项?
  20. 300元搭建远程下载+视频服务器 Debian nginx+aria2+各种视频服务(smb+nfs+dlna)

热门文章

  1. 分销商城小程序系统怎么选择?
  2. 第53课实战操作Kafka+Flume成功! Spark大型项目广告点击项目技术骨架实现之Spark+Kafka+Flume实战
  3. 项目三-体验复杂度(2)汉诺塔
  4. 潭州课堂25班:Ph201805201 django 项目 第三十六课 后台文章管理(课堂笔记)
  5. PCIE/GPU/显卡参数性能查看工具搜集
  6. PAT 1003 Emergency(最短路(迪杰斯特拉||贝尔曼)最小边权下的最大点权)
  7. 《Python自然语言处理(第二版)-Steven Bird等》学习笔记:第05章 分类和标注词汇
  8. 鸿蒙与悟空什么关系,投资周记(154)——鸿蒙初辟本无性,打破顽冥须悟空!...
  9. java计算机毕业设计网上商城系统演示录像源码+系统+数据库+lw文档+mybatis+运行部署
  10. 机器人将“上岗”参与“中国天眼”运维