【问题标题】:Ways to associate an App Store App and a Desktop App关联 App Store 应用程序和桌面应用程序的方法
【发布时间】:2013-02-14 21:06:44
【问题描述】:

我正在开发一款适用于 Windows 8 的产品,该产品需要执行一些低级任务、显示一些 UI 并与外部服务器通信。我绝对需要一个 Windows 服务来完成低级任务。同时,我想为 UI 使用 Windows App Store 应用程序的酷炫功能,如推送通知、动态磁贴等。在这种设计中,我的服务和我的应用程序都将与我的外部服务器进行通信。

流程类似于:我的 Windows 服务向我的服务器发送一些信息,然后向我的 App Store 应用发送推送通知。

我知道在这种情况下部署并不好,但我们暂时先把它放在一边。我的问题:服务器如何知道服务和应用程序在同一台机器上,并因此链接在一起?即当我的 Windows 服务向服务器发送信息时,服务器如何知道将推送通知发送到哪里?我需要某种共享的、唯一的识别信息。

我看到很多关于 App Store 应用程序和桌面应用程序之间缺乏进程间通信的讨论(通常是令人沮丧的)。就我而言,我有两个选择:

  1. 在服务和应用程序中生成完全相同的唯一标识符。这似乎不太可能,因为应用程序似乎无法访问很多特定于系统的信息。我很乐意被证明我错了。

  2. 在服务器或应用程序中生成唯一标识符,并将其传递给其他组件。可能的方法:

    • 在应用程序中创建标识符,将其保存到文件中,然后从服务中访问该文件。
    • 某种本地套接字解决方案(我读过这不起作用,但没有尝试过)

当然,选项 2 似乎可能违反了 Windows 8 应用程序Certification Requirements,尤其是:

Windows 应用商店应用不得与本地桌面通信 通过本地机制的应用程序或服务,包括通过文件和 注册表项。

任何建议将不胜感激。

【问题讨论】:

  • 如果您打算在 Windows 应用商店中分发某些东西,您现在应该忘记它; Windows 应用商店应用和桌面程序存在于两个完全独立、孤立的世界中。
  • 是的,尽管微软正在推出 Windows 应用商店应用程序,但它们似乎并不能很好地满足我的要求。

标签: windows winapi windows-8 windows-runtime windows-store-apps


【解决方案1】:

我不是律师,但如果它说“通过本地机制”,那么您仍然可以通过云服务进行通信,只要安装这两个应用程序对于应用程序中的某些功能不是必需的,或者如果您并不是要在商店中发布应用。

您可以在文档文件夹中保存某种令牌,或者如果您的桌面应用程序可以以适当的权限运行 - 它可以访问 Windows 应用商店应用程序的本地数据文件夹以同步令牌以用于与 Web 服务通信.

也许只是要求用户在两个应用程序之间复制和粘贴令牌?

【讨论】:

  • 是的,我觉得通过云进行通信并没有违反任何规则。用户复制/粘贴以及通过文件进行通信都可以工作(尽管如果微软知道我在做什么,它可能不会批准我的应用程序。)我还考虑编写一个文件系统过滤器驱动程序,它可以充当中间人桌面应用程序和 Windows 应用商店应用程序。考虑了一会儿,使用传统的 Windows 桌面 UI 似乎更有吸引力。
  • 为什么你的应用需要通信呢?也许你应该只做一个 WPF 应用程序?如果您也需要桌面应用程序,那么拥有商店应用程序似乎并没有带来太多好处。反正它不会在 RT 上运行。
  • 我同意你的看法。我只为桌面重新设计。当我发现您实际上可以通过desktop app 显示 Toast 通知时,这个决定变得更容易了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 2012-05-04
  • 1970-01-01
相关资源
最近更新 更多