我们可以使用 React Native 在 Android 系统中运行简单的 shell 脚本吗?

lin*_*shi 5 android react-native

我正在使用React Native编写一个简单的应用程序来自动完成一些文件操作。我尝试过强文本react-native-fs等软件包,但我发现有些文件/文件夹无法使用

RNFS.ls(PATH). 
Run Code Online (Sandbox Code Playgroud)

尝试列出该文件夹中的文件将引发异常。

但是,可以使用adb shell中的ls命令显示这些文件。所以我想知道是否有一种方法可以让我们在 React Native 中运行 shell 命令,就像我们在 java/python 中进行一些系统调用一样?

谢谢

Jos*_*ter 2

编写您自己的本机模块。

您可以轻松地从 Java 运行 shell 命令,并使用 React Native 的 Native 模块从 React Native 调用它。您可以在这里找到更多信息:

https://facebook.github.io/react-native/docs/0.60/native-modules-android#callbacks

对于 Java 命令,您需要使用如下所示的命令

String command = "ls " + path; // Where path is your desired path.

Runtime runtime = Runtime.getRuntime();

Process result = runtime.exec( command );

BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( result.getInputStream() ) );

String[] parts = bufferedReader.readLine().split( "\\s+" );
Run Code Online (Sandbox Code Playgroud)