我已关注these instructions:
在本地启用启用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)
答案 0 :(得分:0)
我使用具有完全相同脚本文件的空项目从头开始重建cocos创建器项目,问题就消失了。对不起,这不是问题的实际修复,但它解决了这个问题。