2016-07-29 2 views
1

ネイティブiOS(Objective-C)開発からネイティブ開発に移行する際に、既存のユーザーを「サインイン」したままで、アプリストアからアプリをアップデートしてください。そのためには ネイティブiOSアプリのデータをネイティブアプリの非同期保存に移行する

...私たちは、データを読み取る必要が

  1. (つまりユーザー名、電子メール、Accesstoken)永続ストレージ(通常NSDictionaryの)からは
  2. ストア、それが提供するasyncStorageで反応しますネイティブフレームワーク

質問です:

  1. は、REACによるいかなるヘルパーメソッドがありますそうするためにネイティブですか?
  2. そうするための他のライブラリはありますか?
  3. 最初の2つの質問が「いいえ」の場合、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の他のコピーがあるかどうか)をチェックし、そうでない場合は現在の値を保持します。

もう1つの方法は、NSUserDefaultsにアクセスできるReact Nativeで利用可能なSettingsモジュールを使用することです。それは.get().set()の方法を持っているので、技術的にはそれを使うことができるはずです。

initialpropertiesを通過したuserSettingsは、Xcode内からアプリを再実行するまで更新されません。

+0

Settings.get( 'NSUserDefaults')を使用してNSUserDefaultsにアクセスしようとしていますが、未定義です。それ以上使用することはできませんか? – NinetyHH

関連する問題