3.8.8创建项目上传淘宝触发浏览器导航报错

反馈一个 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 保护,避免启动阶段触发意外页面跳转。

这个解决方案虽然打开了项目但是黑屏…