您是否可以将具有本机依赖关系的库添加到Expo本地项目中?

时间:2017-01-11 17:46:06

标签: react-native exponentjs expo

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

1 个答案:

答案 0 :(得分:8)

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

  

通常情况下,Expo应用程序是用纯JS编写的,绝不会“掉线”   到原生iOS或Android层。这是世博会的核心   哲学和它是使世博会快速和强大的一部分   使用

     

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

你可以"分离"您的Expo项目将创建包含ExpoKit的Xcode和Android Studio项目。然后,您将以与任何其他Xcode或Android Studio项目相同的方式添加自定义Objective-C或Java。

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

  

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

     

使用JS编写可以最好地利用无线代码   部署并从世博会的持续更新和支持中受益。   只有当您有来自本地的特殊需求时,才应该这样做   世博会不会做好支持的代码,如(   示例)必须发生专门的CPU密集型视频处理   在设备本地。