Windows应用商店的应用程序和本地桌面应用程序之间的通信(Communication betwe

2019-06-28 01:54发布

为了简化事情,我将把Windows应用商店应用程序的缘故(也被称为地铁或现代UI)的“应用程序”和普通桌面应用程序的“应用程序”!

我相信这仍然是谁已经建立了市场上的应用程序有关的应用程序开发的开发者最清楚但重要的问题之一:如何管理Windows 8系统上的应用程序和应用程序之间的通信? (请让我们无法开始原则争论 - 那里是哪里的,这是真的需要这么多的用例!)

我基本上都看过的文章hundrets在过去的几天里,但仍然是如何进行正确的从第一次做,目前还不清楚。 主要是因为我发现了几个相互矛盾的信息。 在这里我的问题,我想从最终的Windows 8的可能性的角度来重新解决这个问题。

鉴于情况:

  • 同一个系统上的应用程序和应用程序运行
  • 1:1的通信
  • 应用程序是本地(Delphi写的)
  • 管理员或者如果需要的话,甚至系统权限可用于应用程序
  • 在用例90%以上的应用程序请求对由应用程序执行的动作,并接收一些文本结果。 该应用程序不应该离开,也没有冻结这个!
  • 在10%的应用程序执行的操作(通过某些事件触发),并通知应用程序 - 结果可能是:显示在瓷砖上,或在已经运行和活跃的应用程序,或者如果可能的运行应用程序的某些信息/将它带到前景。

现在的“简单”的问题是,如何实现这一目标?

  • 是本地的Web服务器的访问实际上现在允许吗? (我相信这不是很长一段时间,但现在是因为最终版本)
  • WCF? ( - >显然MS不建议再 )
  • 本地REST / SOAP服务器上的HTTP请求?
  • WinRT的联合API ? (与RSS /原子响应的web服务接入的另一种形式)
  • WebSockets的 (如MessageWebSocket )?
  • TCP / IP通信的一些其他形式?
  • 共享文本文件的输入和输出(实际上只是在想这伤害,但至少这是一个可能性MS不能阻止...)
  • 命名管道是不允许的,对不对?

这里有一些关于这个论题的讨论上SO,但他们大多都达不到最新的了,因为MS发布的Windows 8的最终版本,而不是混合了新老信息我想之前发生了很大变化找到一个明确的和当前的回答这个问题,我和所有其他Windows应用程序和应用程序开发人员。 谢谢!

Answer 1:

如果你是在谈论一个应用程序进店,通过任何机制本地系统通信是不允许的。 与本地系统通信。在一些调试方案支持,使应用程序开发更容易。

您可以启动Windows应用商店的应用程序与文件或协议处理程序的桌面应用程序,但没有直接的沟通。

因此,要重申一点...的WinRT和桌面之间的通信是不允许发布的Windows应用商店的应用程序。 在两种环境之间的通信仅允许在调试。

该PG已张贴在不同的地方的原因,为什么通信是不允许的,从安全,到的WinRT生命周期(即你的应用程序被暂停 - 这是如何得到处理回复:资源,插座,远程应用等 - 批故障点),事实上,商店的应用程序不能对外部程序(即,我需要你的本地桌面应用程序/服务的应用程序运行,但我如何才能安装应用程式/服务?你不能融入一个依赖商店应用,你可以提供另一个商店的桌面应用程序条目,但是这是一个不好的用户体验。)这些都是高水平的总结,当然。



文章来源: Communication between Windows Store app and native desktop application