关于ios原生应用中嵌入cocos的问题

  • Creator 版本:3.8.6

  • 目标平台:IOS原生应用

    这里先交待一下我的需求背景,我的应用启动后并不立即显示cocos的界面,而是将一个原生view作为初始界面,再从原生界面跳转进入cocos。通过交互再从cocos界面退出返回到原生界面,这时会将cocos界面销毁。所以就会存在反复的创建和销毁cocos实例,多次退出进入cocos后就会存在渲染帧率下降以及内存增长。

    按原始的cocos ios启动模板里,应用退出时会调用AppDelegateBridge 的applicationWillResignActive 和applicationWillTerminate方法


    在适配我的需求中,我也是在我退出cocos界面的时候调用这个方法。
    查看这个方法的内部实现,可以看到是直接退出了cocos的
    _20250509112359
    但是platform是一个静态变量

    再次进入cocos时会再次创建一个systemwindow

对比android原生在退出时调用了unregisterAllInterfaces会清空存在的systemwindow

我按androd那样在IOSPlatform的onDestroy的方法里调用了unregisterAllInterfaces后,再重复进出cocos渲染帧率恢复正常,内存的增减也正常了。虽然问题解决了,但我也只是研究了一部分源码,不知道在不修改源码的情况下有没有更好的方法。期待有兴趣的伙伴们来回复

直接弄个webview不是更方便?

你的意思是用cocos里的webview?虽然这个也是封装的原生的webview,也是一种实现方法,但是cocos的实例就得一直存在,我这里只想显示一个普通的原生view,没必要让cocos一直存在。

你理解犯了,弄个webview加载cocos,而且安卓、ios 都可以用这个方案。性能很好的。在ios上还有jit加持,比v8跑还要快

手机上原生和webivew跑cocos我没对比测试过,你有相关的性能对比数据么?

5年前,iOS 上我之前测过,IO性能比当时的cocos native 好很多。渲染性能比native差一点。但是在iOS webview上,js是有jit的。业务逻辑执行的性能和发热都比cocos native 好。如果游戏渲染环境不复杂,就完全没问题。你通过手机浏览器扫码测试一下就知道了。