【分享】华为快游戏接入的坑和心得

发出来是希望希望能帮到有遇到类似问题的朋友。

目前这些坑的解决方案都是我自己摸索出来的,有什么不对的也希望有经验的朋友指出来。

1、文档的问题


官方提供的这个文档地址是错的,如果你按着这个文档接入,那么你就掉入第一个坑了。

正确的地址:https://developer.huawei.com/consumer/cn/service/hms/catalog/fastgameRuntime.html?page=fastapp_fastgameRuntime_devguide

2、cc.sys.isNative的问题
这个变量在华为快游戏下的值是true,然而很多原生相关函数都是用不了的,实际生成的包其实更像一个web应用。但是web的很多函数也的确是用不了,比如window.location相关函数。

cc.loader.load函数加载远程json在这边也用不了。因为


如果项目中使用了 protobuf的动态加载相关,也会掉入这个坑。

3、小包模式下的md5cache问题
官方的构建面板是没有提供md5cache选项的(我当前用的2.0.9),没有这个就导致更新十分蛋疼,本地缓存的资源没办法更新。
按照cocos目前的机制,比如加载a.png,本地有a.png就不会再执行下载函数,哪怕你远程更新了,本地加载过的资源也不会更新。
我的解决方法,修改引擎CocosCreator2.0.9\resources\builtin\huawei-runtime\build-runtime-ui.js


原来是false,改为true,改完后完全关闭cocos creator(连选择项目那个程序也要退出),构建出来的资源就有md5cache了,希望官方能说明下为什么不把这个设为可选项。

4、构建命令行
看到不少人也找不到构建命令行的,我提供下我目前可用的
E:/CocosCreator2.0.9/CocosCreator.exe --path E:/NewProject --build platform=huawei;debug=false;md5Cache=true
替换对应的creator以及项目目录

以上就是我总结的心得,希望对遇到的朋友能有帮助,如果有遇到什么问题也可以拿出来一起探讨

7赞

我看游戏挺重的呀,这个是creator 做的嘛,我看还有其他玩家的同步,很厉害

是啊是creator 重度游戏,暂时还是把二维码下了,不献丑了

cc.loader.loadRes函数加载远程,请问是不是不能加载音频文件,用什么代替呢?

cc.loader.loadRes加载的是resources下的文件,是大部分类型包括音频文件都可以的。
有问题的是cc.loader.load(url)这种

1赞

你好,请问第三方分享api中imagePath参数怎么填呀,各种路径试了都不对

微信分享吗

对的 分享微信

第一个问题cc.sys.isNative是怎么解决的

加一个坑,本地数据读取和保存必须放在华为登录成功之后

1赞

一定要登录之后吗,登陆之前有办法能使用吗

华为账号登录之前跟之后取到的本地数据是不一样的!所以还是要在华为账号登录之后再去读取本地数据!我也被坑了!

大佬知道华为包体的限制吗?感觉文档写的不清不楚的啊!引擎那边写代码包不超10M!华为官方的文档说20M!这里所谓的代码包是指打出来的rpk吗?

rpk包大小 包体上限以华为文档为准

牛牛牛牛牛

部分引擎打包icon不会被打进去,需构建之后修改icon路径重新生成

2.4.3版本,打包出来的华为快游戏再上传的时候提示“设备方向参数orientation为空”。
在构建出来的“huawei”目录下,查到一个mainifest.json、两个setting.js文件中有orientation对应的值,setting.js中的orientation确实是空字符串。手动填进去之后,使用命令行重新打包了。再次上传还是这个报错。
请问大家有遇到的这个问题或者知道答案的吗,希望能指教一下谢谢啦!



补充上传提示截图

@ccwccy @panda @jare @huanxinyin @1226085293 冒昧@一下诸位大佬,申请技术支援