反馈一个 Cocos Creator 3.8.8 接入淘宝小游戏时的启动兼容问题。
运行环境
- Cocos Creator 3.8.8
- 安卓手机淘宝
- 淘宝小游戏,高性能模式已开启
- AppID:3000000149869801
问题表现
游戏在真机调试和上传后的体验版中均无法正常进入,跳转到异常地址:
https://3000000149869801.minigame.taobao.com/app/dust/game-solution/[object%20Object]
页面报错: net::ERR_THIRD_PARTY_NETWORK_405 。
同 AppID 下,通过淘宝开放平台创建的原生空项目,上传后的体验版可以正常打开。
排查发现
Cocos 构建产物 web-adapter.js 的真机分支会遍历模拟浏览器对象,执行 window[key] = adapter[key] 。
其中 adapter.location 是一个普通对象,包含 href: 'game.js' 、 protocol 、 reload 等字段。如果宿主已经提供原生 window.location ,该赋值会触发浏览器导航,将对象转换为字符串 [object Object] ,形成上述错误地址。
我们已使用当前构建的完整适配器,在真实浏览器的 Location 环境中复现了完全相同的异常跳转。
临时处理与验证
在适配器注入时增加保护:当属性为 location ,且宿主已经存在该属性时,跳过覆盖;没有该属性的环境仍正常注入模拟对象。
修补后,本地复现不再触发错误导航,相关自动测试通过。淘宝安卓真机修复效果仍待复测。
请协助确认淘宝运行环境与 Cocos 适配器之间的兼容要求,并考虑在官方适配器中增加宿主 location 保护,避免启动阶段触发意外页面跳转。