在2个不同的xamarin表单应用程序中共享本地SQLite数据库

时间:2018-02-02 10:17:20

标签: c# sqlite xamarin xamarin.forms xamarin.ios

我正在研究两种不同的Xamarin表单应用程序,我需要在第二个应用程序中共享第一个应用程序的SQLite数据库。

我想为不同的xamarin表单应用实现单点登录方法, 用户只能在任何应用程序中登录,并且可以在两个应用程序中保持登录状态。

我在下面找到了android中我们可以共享数据库的统计信息: - Share LocalDB in two different android app

现在我只需要在我的xamarin表单应用程序中使用类似的东西。

任何帮助都将不胜感激。 谢谢 :) 请享用!

2 个答案:

答案 0 :(得分:3)

对于iOS,它是沙盒,因此在应用程序之间共享数据非常困难。但是仍然有一些方法可以在应用程序之间共享数据。

在您的情况下,我建议您使用应用程序组。应用程序组允许不同的应用程序(或应用程序及其扩展程序)访问共享文件存储位置,有关详细信息,请参阅Working with App Groups

Adding an App to an App Group之后,我们可以使用以下方法在应用程序之间共享数据:

NSUserDefaults的:

var userDefaults = new NSUserDefaults("<your group ID>", NSUserDefaultsType.SuiteName);
userDefaults.SetString("user123", "userId");
userDefaults.Synchronize();

的NSFileManager:

NSUrl appGroupDirectoryPath = NSFileManager.DefaultManager.GetContainerUrl("<your group Id>");
NSUrl dataBaseUrl = appGroupDirectoryPath.Append("dbName.db", false);
//You can try to copy your dataBase file to this url.

答案 1 :(得分:1)

是的,可以在两个iPhone应用程序之间共享数据...... 如果有人需要更多相关信息,请通过以下链接解释如何实现...

使用您的应用程序组

应用程序组是iOS用于允许不同应用程序共享数据的方案。如果应用程序具有正确的权利和正确的配置,则可以访问其普通iOS沙箱之外的共享目录。沙箱仍然适用,除了一个例外。

这可能几乎是自动的,但是当你进入iOS应用程序配置时,你无法做任何事情。应该发生的事情是,您只需打开Xcode中的应用程序和任何扩展程序的“应用程序组”权利。

链接: - Sharing the app extension

@Land Lu - MSFT感谢你的回答让我完成了这个建议。