从javascript代码中反应Native访问strings.xml

时间:2017-07-04 16:36:08

标签: android react-native apk react-native-android

有没有办法从Javascript代码中访问android/app/src/main/res/values/strings.xml的当前值?我想为每个构建放置不同的端点URL,但我甚至无法检测react-native代码中的构建类型,而不必求助于__DEV__变量(可以从开发菜单中关闭)

2 个答案:

答案 0 :(得分:2)

唯一可行的方法是使用本机模块https://facebook.github.io/react-native/docs/native-modules-android.html构建一个桥。您必须将JS中的字符串传递给本机模块,并使用本机函数处理要抓取的字符串并将其传递回JS。

答案 1 :(得分:0)

如果还有人想知道如何做到这一点,我做了一个小程序包,允许将来自strings.xml的导出变量用于JS。

您可以使用rn-config-reader来执行此操作。只需安装软件包:

npm install rn-config-reader

在strings.xml中配置要在JS中使用的字符串:

<resources>
    <string-array name="export_variables">
        <item>TEST_CONFIG_FIELD</item>
    </string-array>
    <string name="TEST_CONFIG_FIELD">ConfigValue</string>
</resources>

在您的JavaScript中,只需使用变量:

import RNConfigReader from 'rn-config-reader';
console.log(RNConfigReader.TEST_CONFIG_FIELD);

https://github.com/higoramp/rn-config-reader