我正在构建一套依赖于彼此数据的应用程序。我想将此共享数据存储库放在 Documents 库文件夹中。
但是,当我尝试将应用程序提交到 Windows 8 商店时,我被拒绝访问该文件夹位置。
我有一个不符合 DocumentLibrary 访问权限的开发者帐户。有人告诉我,因为我不是公司,所以我没有资格获得公司帐户。
离线时如何与其他应用程序共享应用程序数据?
我正在构建一套依赖于彼此数据的应用程序。我想将此共享数据存储库放在 Documents 库文件夹中。
但是,当我尝试将应用程序提交到 Windows 8 商店时,我被拒绝访问该文件夹位置。
我有一个不符合 DocumentLibrary 访问权限的开发者帐户。有人告诉我,因为我不是公司,所以我没有资格获得公司帐户。
离线时如何与其他应用程序共享应用程序数据?
Windows 应用商店应用在沙盒环境中运行,彼此隔离,因此无法轻松共享数据。
如果两个应用程序都可以连接到自定义在线服务以在它们之间共享数据是不够的,那么您需要用户选择一个文件夹(从两个应用程序中)来存储共享数据。这样你就可以访问它了。
首先FolderPicker
用于用户选择文件夹:
var picker = new FolderPicker();
picker.FileTypeFilter.Add(".sqldb");
var folder = await picker.PickSingleFolderAsync();
然后将文件夹添加到,FutureAccessList
以便即使在应用程序重新启动后您仍可以访问它:
var token = StorageApplicationPermissions.FutureAccessList.Add(folder);
您需要存储它token
以便下次加载它。LocalSettings
将是一个合适的位置。当您的应用再次运行时,您首先读取令牌并重新获得对所选文件夹的访问权限:
var folder = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(token);
我知道这不是一个完美的解决方案,因为它需要用户干预才能正确设置所有内容,但我认为这是使应用程序之间的此类数据共享成为可能的唯一方法。即便如此,您可能很难使用此功能验证应用程序。