【问题标题】:Share settings between related Windows Store Apps在相关的 Windows 应用商店应用程序之间共享设置
【发布时间】:2013-01-25 13:47:46
【问题描述】:

我们目前正计划开发一套 Windows 应用商店应用程序。它们是独立的并且完全单独工作,但它们是相关的并且协同行动。如果用户有多个,他们应该共享他们的一些设置(和数据),这样用户就不必在每一个中手动更改这些设置。

这样的场景是故意的吗?

以及如何实现?

  • 注册表:不起作用。应用无法访问注册表。
  • ApplicationData(LocalFolder、LocalSettings 等):不起作用。应用无法访问其他应用的数据。
  • 云服务:一种工作,但仅当机器在线时。我们的应用程序也应该离线工作。而且我们需要创建/租用这样的云服务,这会产生额外的成本。
  • KnownFolder.DocumentsLibrary:这 - 目前 - 对我来说似乎是唯一的解决方案。这些应用程序已经在那里保存和共享数据,所以让我们也在那里保存我们的设置。但是共享文件夹的名称是设置之一!并且 Windows Store Apps 无法创建隐藏文件,因此用户可以看到设置文件。这使得这个解决方案有点……“粗糙”。

我错过了任何其他想法或其他信息?

【问题讨论】:

  • 您能否确认您不是要求同一设备上的多个应用程序相互聊天?虽然这在技术上是可行的,但用户体验非常糟糕,因为应用程序通常会在任何其他应用程序运行时暂停(SnapView 除外)。
  • 如果您希望应用程序在同一网络上相互交互,您应该查看 Proximity API,它允许您通过 BT 或 WIFI 临时连接多台机器并享受乐趣。
  • @JerryNixon-MSFT:不聊天。您启动应用 A,更改一些共享设置并启动应用 B。现在 B 应该尊重更改的设置。

标签: windows-8 settings windows-store-apps


【解决方案1】:

如果您希望它们立即相互同步,即使设备处于离线状态,这是您唯一的选择。 Windows 8 应用不打算共享设置。

【讨论】:

  • 还要注意,自动(即非用户启动)使用 DocumentsLibrary 功能确实需要“商业”开发人员许可证,因此还有一个额外的障碍。见App Capability declarations
  • @JimO'Neil:但这只是对开发人员而不是用户的额外支持,不是吗?
  • @SebastianNegraszus 是的,开发者需要获得商业账户的资格(并支付 99 美元的开发者费用,而个人账户需要 49 美元)
【解决方案2】:

非常想分享。

  1. Roaming API 将仅与 SAME 应用、SAME 用户、任何 W8 设备共享。
  2. SkyDrive 将仅在任何应用程序、同一用户、任何设备之间共享。
  3. 使用 Azure(或任何 Web 服务)将在任何应用程序、任何用户、任何设备之间共享。

不要这样做

  1. 不要使用寄存器,API不支持
  2. 不要使用文件系统,边界会导致你的应用变脆
  3. 不要使用 ApplicationData.AnyFolder,这仅限于单个应用 GUID

你还不如从你的语言中得到“即时”,伙计。那只是不会发生。但是你可以快速(让我们称之为近乎瞬间);您可以使用 Sockets 或 SignalR 将您的客户端连接到那里的某些服务,并且几乎可以立即响应。一种不太复杂的方法也是从您的客户那里进行轮询。它已经为开发人员服务了几十年。

【讨论】:

  • “云服务:有点工作,但只有在机器在线时才能工作。我们的应用程序也应该离线工作。”
  • 最好的解决方案是让应用程序在它们在线时相互通信,但在它们离线时不通信。否则,它会乞求复杂且易于破坏的模式,这会让用户感到沮丧。
猜你喜欢
  • 1970-01-01
  • 2013-09-14
  • 1970-01-01
  • 2014-02-17
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多