2017-08-01 6 views
4

複数のアプリを1つのデータベース(コンテンツプロバイダ)、1つのログオンで作成しました。つまり、1つのアプリケーションでログインすれば、アプリは他のアプリからログアウトする必要があります)、別のアプリから1つのアプリを開く必要があります。毎日オフラインデータをすべてサーバーに更新する必要があります(毎日特定の時刻に実行する必要があります)。今私はこのシステム(すべてのアプリ)をiOSに移植するつもりですが、iPhoneで可能ですか?そして私はこのアプリをアプリストアに提出するつもりはない。複数のiOSアプリ(単一のデータベースとシングルログオン)

+0

なぜあなたはあなたの質問に 'android'タグを付けましたか? –

+0

私は既にAndroidで同じことを実装しているので、アンドロイドとiOSの一般的な開発者は簡単に私のための提案を与えることができます – Prathap

答えて

3

はい、可能です。あなたが使用して取得することができたコンテナのURLでデータベースを保存する必要があります:

- (NSURL *)containerURLForSecurityApplicationGroupIdentifier:(NSString *)groupIdentifier; 

groupIdentifier paramはすべてのアプリケーションで同じにする必要があると標的 - > Capabilities->アプリケーショングループ内で設定する必要があります。

各アプリケーションに同じappGroupを設定したら、上記の方法を使用して、メソッドによって提供された場所にデータベースを保存できます。そうすれば、すべてのアプリから同じDBにアクセスできます。

固有名詞(appGroup)を持つNSUserDefaults init methidがあり、単一のログオン目的で使用できる共有UserDefaultsが作成されます。

- (instancetype)initWithSuiteName:(NSString *)suitename; 

は参照してください:

containerURLForSecurityApplication

NSUserDefaults

+0

あなたの素早い対応のためにPuneet sharmaありがとうございます – Prathap

1

あなたはアプリ間でファイルを共有するためにAppGroupsを使用することができます。 AppGroupsを使用しての機能を実装することができます。Boolをデータベースに保存しておき、それぞれのアプリがアクセス権を持ちます。ユーザーが現在ログインしているかどうかを示しています。

+0

ありがとうDavid Pasztor、アプリを別のアプリからダウンロードして、どのようにして毎日同じ日にサーバーにすべてのデータをアップロードできますか(これはAndroidサービスを使用しているため)、iOSの代替手段は何ですか? – Prathap

+0

他のアプリからアプリを自動的に開くことはできません。「iOS」には、ユーザーの操作が必要です。あなたはあなたのアプリを起動するためにあなたがクリックすることができるあなたの他のアプリであなたへのリンクを提供する必要があります。ただし、共有データベースを使用している場合は、データをサーバーにアップロードするために他のアプリを開く必要はありません。いずれかのアプリケーションが終了する前にデータがデータベースに書き込まれていることを確認してから、データベースの内容を毎日あなたのアプリからアップロードするだけでよいのです。 –

+0

ユーザーは数時間後にオフラインでデバイスをインターネットに接続しているため、そのデバイスをオンラインにする前にすべてのアプリケーションをSuspended状態にする可能性があります。 – Prathap

関連する問題