我正在开发一款适用于 Windows 8 的产品,它需要执行一些低级任务、显示一些 UI 以及与外部服务器通信。我绝对需要 Windows 服务来完成低级任务。同时,我想在 UI 中使用 Windows App Store 应用程序的酷炫功能,如推送通知、动态磁贴等。在此设计中,我的服务和我的应用程序都将与我的外部服务器通信。
流程类似于:我的 Windows 服务向我的服务器发送一些信息,然后服务器向我的 App Store 应用发送推送通知。
我知道在这种情况下部署不是很好,但让我们暂时把它放在一边。我的问题:服务器如何知道服务和应用程序在同一台机器上,并因此链接在一起?即当我的 Windows 服务向服务器发送信息时,服务器如何知道将推送通知发送到哪里?我需要某种共享的、独特的、识别信息。
我看到很多关于 App Store 应用程序和桌面应用程序之间缺乏进程间通信的讨论(本质上通常是令人沮丧的)。就我而言,我有两个选择:
在服务和应用中生成完全相同的唯一标识符。这似乎不太可能,因为应用程序似乎无法访问非常多的系统特定信息。我很想证明我在这件事上是错的。
在服务器或应用程序中生成一个唯一标识符,并将其传达给其他组件。可能的方法:
- 在应用中创建标识符,将其保存到文件中,然后从服务访问该文件。
- 某种本地套接字解决方案(我读过这不起作用,但还没有尝试过)
当然,选项 2 似乎可能会违反 Windows 8 应用 Certification Requirements ,特别是:
Windows Store apps must not communicate with local desktop applications or services via local mechanisms, including via files and registry keys.
如有任何建议,我们将不胜感激。
最佳答案
我不是律师,但如果它说“通过本地机制”那么你仍然可以通过云服务进行通信,只要安装这两个应用程序并不是应用程序中的某些功能所必需的,或者如果你并不意味着在商店中发布该应用程序。
您可以在文档文件夹中保存某种 token ,或者如果您的桌面应用程序可以在适当的权限下运行 - 它可以访问 Windows 应用商店应用程序的本地数据文件夹以同步用于与 Web 服务通信的 token .
也许可以只要求用户在两个应用之间复制和粘贴 token ?
关于windows - 关联 App Store 应用程序和桌面应用程序的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14884040/