【问题标题】:Can you add libraries with native dependencies to an Expo react native project?您可以将具有本机依赖项的库添加到 Expo 反应本机项目吗?
【发布时间】:2017-05-26 15:06:59
【问题描述】:

你能在 Expo 项目中使用像 https://github.com/tolu360/react-native-google-places 这样的库吗?我假设任何 npm 库都可以添加,但是像这个 google 位置选择器这样的库呢?它需要安装后步骤来链接本机项目。 Expo 支持他们吗?

【问题讨论】:

    标签: react-native exponentjs expo


    【解决方案1】:

    Regular Expo 项目仅使用 JavaScript 编写,不支持包含 Objective-C 或 Java 的 npm 包。但是,当您绝对需要使用自定义本机代码时,Expo 提供了一个名为 ExpoKit 的高级 SDK。来自 Expo 文档:

    通常,Expo 应用程序是用纯 JS 编写的,从不“下拉” 到本机 iOS 或 Android 层。这是世博会的核心 哲学,它是使世博会快速而强大的一部分 使用。

    但是,在某些情况下,高级开发人员需要原生 Expo 提供的开箱即用功能之外的功能。最多 常见的情况是项目需要特定的 Native Module React Native Core 或 Expo SDK 不支持。

    您可以“分离”您的 Expo 项目以创建包含 ExpoKit 的 Xcode 和 Android Studio 项目。然后,您可以像添加任何其他 Xcode 或 Android Studio 项目一样添加自定义的 Objective-C 或 Java。

    不过,Expo 文档也警告了编写自定义本机代码的一些缺点;许多功能通常可以在 JS 中很好地实现,让您保留标准 Expo 项目的所有好处。

    警告:我们不鼓励大多数开发人员采用这种方式, 因为我们相信您需要做的几乎所有事情都会更好地完成 以 JS 的跨平台方式。

    用 JS 编写可以让您充分利用无线代码 部署并受益于 Expo 的持续更新和支持。 仅当您对本地人有特殊要求时才应该这样做 Expo 无法很好地支持的代码,例如(对于 例如)必须进行的专门的 CPU 密集型视频处理 本地设备上。

    【讨论】:

    猜你喜欢
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    相关资源
    最近更新 更多