上周,苹果发布了 Apple TV 的更新,其中包含许多新功能。它现在运行在名为 tvOS 的新操作系统上,并包含一个允许第三方应用的应用商店。这些应用可以使用许多框架和概念进行开发,这些框架和概念与 iOS 非常相似(Foundation、UIKit 和 CoreGraphics),但也有一些新的 API,如 TVServices。
我们迫切地想知道是否可以在这个新平台上运行 NativeScript。
这可以通过多种方式对您有所帮助。首先,您可以使用 JavaScript 访问原生 TV UI,其次,更重要的是,您可以重用任何现有的业务逻辑或云连接,这些逻辑或连接可能已作为您 Web 或移动应用程序的一部分存在。更不用说,您现在可以使用 NativeScript 成为一名 TV 开发人员了 :)。
用于 iOS 的 NativeScript 运行时 使用 CMake 来简化构建配置过程。为了使我们的构建(包括 JavaScriptCore 引擎)与 Apple TV 兼容,我们所要做的就是在我们的 配置脚本 中添加两个平台。
set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos;-iphonesimulator;-appletvos;-appletvsimulator")
set(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "iphoneos iphonesimulator appletvos appletvsimulator")
在 Apple TV 上运行 NativeScript 的第二步是使用新的 tvOS SDK 为我们的 元数据生成器 提供数据。我们必须对我们用来生成有关原生 API 元数据的 Clang 编译器的调用方式进行一些小的调整,但之后它就像魅力一样工作了。
这使我们能够立即使用所有 tvOS 特定 API,并且任何未来的 API 都将根据您本地的 tvOS SDK 自动生成。
之后,只需不到一百行代码,就可以在 Apple TV 模拟器上运行一个漂亮的概念验证应用。
在这个示例中,我们使用了一个带有从 imgur 下载的一些图像的 UIPageViewController
。结果是一个幻灯片式屏幕,可以使用 Apple TV 遥控器进行导航。您可以在 GitHub 上找到完整的源代码。
欢迎克隆项目并进行实验,并告诉我们您的想法。Apple TV 的未来看起来非常有希望,我们将密切关注它的发展。
如果您计划在 tvOS 上工作,请联系我们,以便我们可以一起合作并帮助您构建解决方案。最好的联系方式是在 GitHub 上 打开一个问题。
如果您想了解更多关于 Apple TV 应用的信息,以下是一些很棒的资源