-1

我已按照以下说明进行操作:

在本地启用启用 https 的 Web 服务器 通过 npm 安装 http-server 包

$ npm install -g http-server

通过 openssl 创建私钥和证书。路径需要分配到构建的 fb-instant-games 目录

$ cd fb-instant-games/
$ openssl genrsa 2048 > key.pem
$ openssl req -x509 -days 1000 -new -key key.pem -out cert.pem

一旦准备好私钥和证书,就可以通过 SSL 在本地启动 Web 服务。

$ http-server --ssl -c-1 -p 8080 -a 127.0.0.1

使用浏览器打开https://localhost:8080并跳过浏览器显示的安全警告。这一步只是为了让浏览器将上述私钥和证书加入白名单。如果您随后重新生成私钥和证书,则需要再次打开确认。这一步还不能直接预览游戏,因为预览游戏需要初始化Facebook Instant Games SDK。您需要使用以下方法。

在 Facebook 上预览游戏

如果您想使用 Facebook Instant Games SDK 的所有功能,您需要在浏览器中打开: https ://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080 . 注意链接中的 YOUR_GAME_ID。替换您在 Facebook 中创建的申请号。

然后就可以看到游戏运行成功了:

我完全按照。Web 服务器从正确的路径运行。当我导航到 Facebook 为本地嵌入提供的 URL 时,游戏没有初始化。

如果我将 zip 文件上传到 Facebook 主机并从我的手机上玩,游戏初始化很好。当我尝试使用本地测试时,它特别不起作用。如果我导航到 /build/fb-instant-games/ 或https://localhost:8080 ,我在 Chrome 中没有收到任何错误,但是如果我转到https://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080然后我会收到此错误

project.js:1 Uncaught TypeError: Cannot set property 
‘string’ of null
at CCClass.start (project.js:1)
at CCClass.eval [as _invoke] (eval at o (cocos2d-js-min.js:1), :3:65)
at CCClass.invoke (cocos2d-js-min.js:1)
at CCClass.startPhase (cocos2d-js-min.js:1)
at e.mainLoop (cocos2d-js-min.js:1)
at t (cocos2d-js-min.js:1)
4

1 回答 1

0

我使用具有完全相同的脚本文件的空项目从头开始重建了 cocos creator 项目,问题就消失了。抱歉,这不是问题的实际解决方案,但它已经解决了问题。

于 2018-03-20T14:54:23.787 回答