立即响应Native和Apple TV

我总是检查React Native中每个发行版的注释。 前几天,我对v0.36.0-rc.0中一个有趣功能的宣布感到惊讶:对Apple TV的支持。

我从查看提交(由dlowder-salesforce所做)开始,我发现UIExplorer示例项目已经对此提供支持,但是由于状态栏存在问题而无法正常工作,我认为这是因为没有t状态栏。

在分析了对项目所做的更改并阅读了github报告的有关该主题的票证之后,我找到了启用Apple TV的必要步骤。

好的,现在不用多说,这里是将Apple TV支持添加到新的React Native项目的步骤。 我将在步骤中尽可能详细:

  • 创建一个新项目
    react-native初始化apple_tv_example
  • 使用package.json中的候选发布者 用以下命令替换本机版本(在我的情况下为^ 0.35.0):
    git://github.com/facebook/react-native.git#v0.36.0-rc.0
    注意:由于它将是版本的一部分,因此将来将是可选的。
  • 通过运行安装对软件包所做的更改

    注意:您会收到一个 UNMET PEER DEPENDENCY 错误-没关系。 要验证软件包是否已正确安装,请 node_modules / react-native 下的文件中 查找对 TARGET_OS_TV的 引用 ,应该有很多。
  • 通过在xCode上转到“文件>新建>目标”,然后选择“ tvOS>应用程序>单视图应用程序”,将tvOS应用程序添加到项目中。
  • 通过在Linked Frameworks and Libraries中按“ +”将所有tvOS库链接到新目标。 在工作区中,搜索包含“ tvOS”的所有库,然后添加它们。
  • 通过添加来添加对ObjC和LC ++的支持
    $(继承)-ObjC -lc ++
    到“构建设置”下的“其他链接器标志”。
  • 删除为新目标创建的文件夹内的所有文件和文件夹,但保留Info.plist。
  • 通过删除Main storyboard文件的基本名称 (假设我们不会使用任何Storyboard)并添加App Transport Security Settings (从iPhone的目标Info.plist文件复制它)来允许使用localhost来编辑Info.plist。
  • 将属于iPhone目标的所有文件添加到TV目标。 为此,选择AppDelegate.m ,然后在实用工具侧栏中选择电视目标。 对main.m (以及所有属于iPhone目标的文件)重复此过程。
    注意:忽略 xib 文件,电视不支持这些文件。
  • 最后,选择您的新目标,然后按Play
  • 做完了!

鉴于电视上不支持某些组件(例如状态栏和通知),因此使用现有项目可能会发现一些错误。

您可以在https://github.com/7ynk3r/apple_tv_example中找到包含这些步骤结果的源代码。

希望您玩得开心!