Получить доступ к профилю конфигурации iOS из React Native?

На моем iPhone запущено приложение React Native, и я хотел бы изменить конфигурацию приложения (для другой среды), когда установлен определенный профиль конфигурации.

Как я могу прочитать / получить доступ к профилю конфигурации iOS из приложения React Native?

1 ответ

Вы можете сделать простой пользовательский модуль, чтобы получить это значение с родной стороны 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 вы можете использовать этот модуль, следуя фрагментам кода.

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, вы можете использовать конкретный параметр конфигурации на стороне React Native, получив имя платформы iOS, как указано выше.

В любом случае, вы можете получить любые типы значений конфигурации на стороне iOS, изменив файл RNConfig.m.

Другие вопросы по тегам