2016-04-12 2 views
1

React Native APIを使用してJavaScriptでRealmデータベースをインスタンス化する方法は、メインアプリと共有を含むアプリグループにアクセスできるようにする方法ですか拡張?リアクションネイティブアプリとシェアエクステンション間でレルムデータベースを共有する方法

バックエンドサービスでデータをアプリにインポートするために共有拡張が必要な​​React Nativeアプリを作成しています。私たちのユーザー認証情報はRealmデータベースに格納されており、ユーザーに代わってサービスに連絡するために、この情報にも共有拡張機能によってアクセスする必要があります。

現在、我々はこれを達成するために発見した唯一の方法は、以下に示すように、その後、私たちのルートコンポーネントに渡し、AppDelegateでレルムパスを計算することです:ルートコンポーネントで

NSURL *realmPathUrl = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.company.product"]; 
NSString *realmPath = [[realmPathUrl path] stringByAppendingPathComponent:@"db.realm"]; 
NSDictionary *props = @{@"realmPath" : realmPath}; 
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"product" initialProperties:props launchOptions:launchOptions]; 

そして、 :

const userPrefsRealmDatabase = new Realm({path: props.realmPath, ...otherOptions}); 

しかし、これは非常に厄介なソリューションであり、そして店舗がルート要素の前にインスタンス化されているように、私たちのフラックス実装でいくつかの問題を紹介しますが、レルムデータベースにアクセスする必要があります。あなたが反応し、ネイティブプラグインでhttps://github.com/realm/realm-js

+0

似たようなケースがありますが、どうやってこれをやったのかいくつかの情報を共有できますか?私は本当にそれを感謝します。前もって感謝します。 –

答えて

0

を見ることができ

+0

ありがとう、これは私たちがやったことで、おそらく最高の解決策です。 –

+0

同じことをやってもAndroidの問題は解決しますか? –

0

とき、あなたのJSの負荷それはすぐに利用できるようになりますので、私は、定数としてパスをエクスポートし、独自のネイティブモジュールを作成することをお勧めします。その方法については、Exporting Constantsのセクションを参照してください。

+0

ありがとう、React Nativeプラグインは既に使用していますが、Realmをアプリケーショングループの共有データフォルダに入れるネイティブな方法はありません。初期化時にRealmファイルの 'path'を指定することができますが、' Path'は 'AppDelegate'で計算されなければならないという複雑さがあります。 –

関連する問題