从 iOS 上的 React Native 应用程序访问 NSUserDefaults

Posted

技术标签:

【中文标题】从 iOS 上的 React Native 应用程序访问 NSUserDefaults【英文标题】:Accessing NSUserDefaults from a React Native application on iOS 【发布时间】:2019-03-13 00:29:00 【问题描述】:

我有一个使用 ExpoKit 的 React Native 应用程序。如果需要,我可以弹出。

我想访问 NSUserDefaults 对象以读取已由 AirWatch(移动设备管理系统)推送的值。基本上,该应用程序在托管环境中运行,并且设置通过 NSUserDefaults 传递。

我无法使用 React Native 的 Settings (https://facebook.github.io/react-native/docs/settings),因为它在尝试访问 this._settings[t] 时给我一个关于内部 _settings 对象未定义的错误。

如何使用这个设置模块,或者我应该怎么做才能访问这个设置对象?

【问题讨论】:

看起来你需要调用 Settings.get(t) 来获取值。 @SachinVas 调用Settings.get("my_key") 是我试图做的,它给了我这个关于_settings 未定义的错误。你能成功使用Settings.get()吗? 【参考方案1】:

检查你的 pod,你很可能错过了 pod 'React' 的子规范“RCTSettings”,它没有在弹出期间添加......这真的很奇怪。

这就是我的样子:

  pod 'React',
:path => "../node_modules/react-native",
:inhibit_warnings => true,
:subspecs => [
  "Core",
  "ART",
  "RCTActionSheet",
  "RCTAnimation",
  "RCTCameraRoll",
  "RCTGeolocation",
  "RCTImage",
  "RCTNetwork",
  "RCTText",
  "RCTVibration",
  "RCTWebSocket",
  "RCTSettings",
  "DevSupport",
  "CxxBridge"
]

【讨论】:

以上是关于从 iOS 上的 React Native 应用程序访问 NSUserDefaults的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的共享扩展无法打开我的 react-native 应用

Firebase 从不从 iOS 上的 React Native 连接(模拟器)

一键后iOS上的React Native TextInput隐藏键盘

React-native:iOS 应用程序在具有命名空间 SPRINGBOARD 的设备上的启动屏幕中崩溃

React Native:推送通知正在冻结 iOS 上的应用程序(白屏)

React Native 应用程序未在 XCode iOS 模拟器中运行