微信小游戏接入第三方sdk报错;window is not defined

时间:2024-03-24 15:07:01

::记录一个微信小游戏接入第三方sdk的问题

情况:
1.sdk是以本地js文件给出的;
2.cp在game.js中require了sdk文件立刻调用了sdk文件里面的函数(这个函数里面使用了window对象);
3.真机调试的时候报错:gameThirdScriptError:window is not define;

解决:
1.让cp在等待微信小游戏的weapp-adapter.js加载执行完后再require和调用sdk的接口。

原因:
1.微信小游戏环境下没有window环境,但是微信小游戏提供了一个类似的对象叫GameGlobal.
2.GameGlobal这个对象会在微信小游戏提供的适配文件weapp-adapter.js中被挂靠到一个自定义的叫window的全局变量。在微信开发工具中测试,执行完这个文件需要2.744s。
3.在GameGlobal对象挂靠到window对象前,使用window会报错。

另外:weapp-adapter.js中是使用函数对象.call()的方式递归加载完这个文件中定义到的函数。而挂靠GameGlobal这一步是在所有函数加载执行完后才做的。

欢迎关注我的公众号
微信小游戏接入第三方sdk报错;window is not defined