2016-07-29 9 views
1

Während der Migration von der nativen iOS (Objective-C) -Entwicklung auf native Entwicklung reagieren, wie halten wir unseren bestehenden Benutzer 'angemeldet' und machen den Übergang nahtlos für die Benutzer, wenn sie dies tun Aktualisieren Sie die App im App Store.Migration der Daten der nativen iOS-App in den asyncstorage der nativen App

Damit dies geschehen kann ...

  1. Wir brauchen Daten zu lesen (dh Benutzername, E-Mail, Accesstoken) aus dem persistenten Speicher (in der Regel NSDictionary)
  2. Shop in der asyncStorage durch die bereitgestellte reagieren nativen Rahmen

Die Frage ist:

  1. gibt es eine Hilfsmethode von reac t nativ dazu?
  2. Gibt es noch eine andere Bibliothek?
  3. Wenn die Antwort "Nein" für die ersten beiden Fragen ist, wie geht das in Objective-C vor?

Antwort

1

Wir haben vor kurzem hatte die gleiche Anwendungsfall in einem unserer Anwendungen und beschlossen, die folgendes zu tun:

Lesen von NSUserDictionary wie normal (Fetch alle Elemente) und geben sie nicht an RCTRootView

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

Angenommen, Ihr userSettings Wörterbuch enthält z accessToken Eigenschaft, sollten Sie in der Lage sein, nur auf this.props.accessToken von innerhalb Ihrer root React-Komponente zugreifen (die Sie an AppRegistry.registerComponent übergeben).

Als nächstes können Sie entweder überprüfen, ob Werte bereits in AsyncStorage gespeichert wurden (oder ob Sie eine andere Kopie von userSettings verwenden sollten) und falls nicht - die aktuellen Werte beibehalten.

Eine andere Alternative ist Settings Modul zu verwenden, das in React Native verfügbar ist, mit dem Sie auf NSUserDefaults zugreifen können. Es hat .get() und .set() Methoden, so dass es technisch möglich sein sollte, es zu verwenden.

Beachten Sie, dass userSettings durch initialProperties übergeben wird nicht aktualisiert, bis Sie die App aus dem Xcode erneut ausführen.

+0

Ich versuche, den NSUserDefaults mithilfe von Settings.get ('NSUserDefaults') zugreifen, aber ich undefined. Ist es nicht mehr möglich zu verwenden? – NinetyHH

Verwandte Themen