将原生iOS应用程序的数据迁移到React Native应用程序的异步存储

时间:2016-07-29 06:11:45

标签: ios objective-c react-native migration

从本机iOS(Objective-C)开发迁移到本机开发时,我们如何保持现有用户“登录”,并在用户从应用商店更新应用时为用户实现无缝转换。

为此发生......

  1. 我们需要从持久存储中读取数据(即用户名,电子邮件,Accesstoken)(通常是NSDictionary)
  2. 将其存储在react native framework
  3. 提供的asyncStorage中

    问题是:

    1. 是否有任何辅助方法通过本地反应来做到这一点?
    2. 还有其他图书馆吗?
    3. 如果前两个问题的答案是“否”,那么如何在Objective-C中做到?

1 个答案:

答案 0 :(得分:1)

我们最近在其中一个应用程序中使用了相同的用例,并决定执行以下操作:

正常阅读NSUserDictionary(获取所有元素)并将其传递给RCTRootView

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

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

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

另一种方法是使用React Native中提供的Settings模块,允许您访问NSUserDefaults。它有.get().set()方法,因此从技术上来说应该可以使用它。

请注意,在Xcode中重新运行应用程序之前,通过initialProperties传递的userSettings不会更新。