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

Posted

技术标签:

【中文标题】不是让 RN 认为它是电视的方法,即使它不是(修改 uiMode?)【英文标题】:Not hacky way to make RN think it’s TV even when it’s not (modifying uiMode?) 【发布时间】:2021-11-13 12:22:00 【问题描述】:

所以我需要我的应用在 AOSP android 盒子上像 Android TV 一样运行。作为 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 代码的情况下达到同样的结果?

先谢谢了。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于不是让 RN 认为它是电视的方法,即使它不是(修改 uiMode?)的主要内容,如果未能解决你的问题,请参考以下文章

如果它是私有的,是不是可以从 main 调用方法?如果没有,怎么可能?

TypeError: role.setPermissions 不是一个函数,即使 TypeScript 说它是

如何强制 Spark 执行代码?

有没有一种简单的方法可以让 emscripten 发出 wasm 而不是修改它的名字?

TypeScript 和 React Native:RN 样式的类型定义是不是错误?

RN原生方法setNativeProps