【发布时间】:2019-03-19 20:42:09
【问题描述】:
我的 iPhone 上运行了一个 React Native 应用程序,我想在安装特定配置文件后更改应用程序配置(针对另一个环境)。
如何从 React Native 应用程序读取/访问 iOS 配置文件?
【问题讨论】:
标签: react-native configuration-profile
我的 iPhone 上运行了一个 React Native 应用程序,我想在安装特定配置文件后更改应用程序配置(针对另一个环境)。
如何从 React Native 应用程序读取/访问 iOS 配置文件?
【问题讨论】:
标签: react-native configuration-profile
您可以制作简单的自定义模块以从 iOS 原生端获取该值。 这是名为 RNConfig
的自定义模块RNConfig.h
#import <Foundation/Foundation.h>
#import "React/RCTBridgeModule.h"
@interface RNConfig : NSObject<RCTBridgeModule>
@end
RNConfig.m
#import "RNConfig.h"
@implementation RNConfig
RCT_EXPORT_MODULE();
- (NSDictionary *)constantsToExport
{
NSString* platform_name = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"PlatformName"];
return @{ @"PlatformName": platform_name };
}
@end
使用 React Native,您可以通过以下代码 sn-ps 使用该模块。
const { RNConfig } = require('NativeModules');
let platformName = RNConfig.PlatformName;
当您在 iOS 端有多个目标时,可以使用此模块。 所以在 React Native 方面,根据每个目标,你有很多配置值。
config/index.js
import { targetA } from './targetA';
import { targetB } from './targetB';
const variables = {
targetA,
targetB
};
const { RNConfig } = require('NativeModules');
export default variables[RNConfig.PlatformName];
如果您的 iOS 目标名称是 targetA 或 targetB,那么您可以通过像上面那样获取 iOS 平台名称来使用 React Native 端的特定配置设置。
无论如何,你可以通过更改RNConfig.m文件在iOS端获取任何类型的配置值。
【讨论】: