从本机iOS(Objective-C)开发迁移到本机开发时,我们如何保持现有用户“登录”,并在用户从应用商店更新应用时为用户实现无缝转换。
为此发生......
问题是:
答案 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
不会更新。