2017-01-11 61 views

回答

8

Regular Expo項目僅以JavaScript編寫,不支持包含Objective-C或Java的npm包。但是,當您絕對需要使用自定義本機代碼時,Expo提供了一個名爲ExpoKit的高級SDK。來自世博會文檔:

通常,博覽會應用程序是用純JS編寫的,並且從未將「 」下拉到本地iOS或Android圖層。這是世博會 理念的核心,也是世博會快速而強大的部分原因,可用於 。

但是,在某些情況下,高級開發人員需要本地 功能,而不是世博會開箱即用的功能。 最常見的情況是,當項目需要特定的本機模塊 時,React Native Core或Expo SDK不支持該模塊。

您可以「分離」您的Expo項目以創建包含ExpoKit的Xcode和Android Studio項目。然後,您將像使用任何其他Xcode或Android Studio項目一樣添加自定義Objective-C或Java。

然而,世博會的文件也警告說,編寫自定義本機代碼的一些缺點;許多功能通常可以在JS中很好地實現,使您可以保留標準世博項目的所有優點。

警告:我們不鼓勵我們的大多數開發商採取這條路線, 因爲我們相信幾乎所有你需要做的一切是更好的與JS跨平臺的方式來實現 。

使用JS編寫代碼,您可以充分利用無線代碼 的部署優勢,並從世博會持續更新和支持中受益。 如果您有來自世博會本地支持的原生 代碼的特定需求,例如(對於 示例),必須在設備上本地發生 專用CPU密集型視頻處理,您應該只這樣做。

+0

+1。根據你的回答,我無法使用[react-native-fs](https://github.com/itinance/react-native-fs),因爲它需要'react-native link',而且[react-native -fetch-BLOB](https://github.com/wkh237/react-native-fetch-blob)。有一個[react-native-fs]的expo版本(https://github.com/expo/exponent-react-native-fs),但無法使其工作。你能幫我解決嗎? 謝謝 –

+1

@ lal-zada Expo 2.0已經支持文件系統:https://docs.expo.io/versions/latest/sdk/filesystem.html – ronin1184

相關問題