2016-07-29 63 views
1

从本机iOS(Objective-C)开发迁移以回应本机开发时,如何保持现有用户“登录”并在用户进行无缝转换时从应用商店更新应用。将本机iOS应用程序的数据迁移到React Native应用程序的异步存储

为了做到这一点...

  1. 我们需要读取数据(即用户名,电子邮件的accessToken)从持久存储(通常的NSDictionary)
  2. 储存于所提供的asyncStorage的反应本地框架

的问题是:

  1. 是否存在被REAC任何辅助方法,原生做的?
  2. 有没有其他图书馆这样做?
  3. 如果前两个问题的答案是“否”,那么如何在Objective-C中做到这一点?

回答

1

最近,我们有相同的使用情况在我们的应用程序之一,并决定执行以下操作:从NSUserDictionary

阅读就像正常(获取所有元素),并把它们传递给RCTRootView

NSDictionary *userSettings = @{}; // fetch them here 
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 
                 moduleName:@"XYZ" 
               initialProperties:userSettings 
               launchOptions:launchOptions]; 

假设您的userSettings字典包含例如accessToken属性,您应该能够从您的根React组件(您传递给AppRegistry.registerComponent)中访问this.props.accessToken

接下来,您可以检查值是否已经保存到AsyncStorage(或者是否存在您应该使用的任何其他userSettings副本),如果没有 - 保留当前值。

另一种替代方法是使用可在React Native中使用的Settings模块,该模块允许您访问NSUserDefaults。它有.get().set()方法,所以在技术上应该可以使用它。

请注意,通过initialProperties传递的userSettings不会更新,直到您从Xcode中重新运行应用程序。

+0

我想通过使用Settings.get('NSUserDefaults'),但我收到未定义访问NSUserDefaults。是不是可以使用? – NinetyHH

相关问题