让 RN 认为它是电视,即使它不是(修改 uiMode?)

Not hacky way to make RN think it’s TV even when it’s not (modifying uiMode?)

所以我需要我的应用 运行 就像 AOSP Android 盒子上的 Android 电视一样。作为 POC,我尝试将 node_modules/react-native/Libraries/Utilities/Platform.android.js 中的函数从

更改为
get isTV(): boolean {
    return this.constants.uiMode === 'tv';
  }

  get isTV(): boolean {
    return true;
  },

它在盒子上工作正常。不过,我想要一种不那么骇人听闻的方式来做到这一点。该解决方案似乎能够将 uiMode 更改为 tv,但我发现它不是您可以在 expo 的 app.json 中更改的参数,也不是从 JS 代码中可以更改的。有没有办法做到这一点,或者我没有想到的另一种方法可以在不直接更改 RN 代码的情况下实现同样的结果?

先谢谢了。

所以,我没有找到任何方法来实际将其更改为参数,但我最终使用 patch-package 来记录我对 RN 的编辑,避免了 fork 的麻烦。