首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在桌面PC上使用本机消息的MS Edge扩展-在后台运行UWP应用程序/不使用UI

在桌面PC上使用本机消息的MS Edge扩展-在后台运行UWP应用程序/不使用UI
EN

Stack Overflow用户
提问于 2017-07-10 09:12:30
回答 1查看 852关注 0票数 2

我们有一个经典的桌面应用程序在Windows上,需要与网络浏览器通信。因此,我们创建了web浏览器扩展,并使用本机消息传递技术在网页上的JavaScript和本机桌面应用程序之间传递消息。这种通信方式目前在Google、Mozilla和Opera中得到支持。现在,我们希望在Microsoft中执行相同的任务。但不幸的是,Microsoft以与其他浏览器不同的方式支持本地消息传递。在Chrome/Firefox/Opera中,一个序列化的JSON字符串可以通过stdin/stdout传递给本地消息传递主机应用程序。

由于Microsoft是一个通用的Windows应用程序,它只支持通过AppService与另一个UWP应用程序通信(并通过FullTrustProcess进一步与我们的经典桌面应用程序进行通信)。由于多种原因,我们的经典桌面应用程序无法转换为UWP应用。基本上这是没有问题的,但有些问题我目前还不知道如何解决:

UWP应用程序似乎需要一个用户界面。但是扩展的目的只是通信,没有用户界面的意图。

因此,当用户打开UWP应用程序时,我可以显示有关UWP app / Edge扩展的一些信息,但是如果用户关闭应用程序(例如,通过单击(X)按钮),UWP应用程序进程就会被系统杀死。如果在通信过程中发生这种情况,则本机消息传递通信将被中断,用户将收到错误。到目前为止,我还没有找到避免这种情况的方法。当Microsoft启动UWP应用程序(由扩展的背景runtime.connectNative代码中的“JavaScript”启动)时,它将以后台模式运行,如果Microsoft退出,它将被终止。但是,如果用户打开应用程序(例如通过“开始”菜单),则应用程序的进程将被重用,并且它现在正以前台模式运行。然后,如果App被用户关闭,最初由Microsoft启动的进程将被终止。我看过微软的官方"ExtendedExecution“例子,但这也是一样的。

  • 如果用户关闭应用程序的UI,是否有方法将UWP应用程序发送到后台模式执行而不是终止?这样应用程序就可以像以前一样在后台模式下继续运行了?
  • 或者有任何方法在OnLaunched事件中隐藏UI (例如,我们的经典桌面应用程序将被打开,用户现在将无法手动关闭UWP应用程序)?

也许我可以从我们的本地桌面应用程序中找到UWP应用程序的HWND,并使用它执行一些丑陋的攻击,但我绝对想避免这种情况。

你好,多明尼克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-19 08:50:14

uwp https://learn.microsoft.com/en-us/windows/uwp/launch-resume/support-your-app-with-background-tasks中有一些背景任务

此外,您还会对package.appxmanifest文件中的“package.appxmanifest”设置感兴趣。使用它,应用程序的链接将不会出现在“开始”菜单中。

代码语言:javascript
复制
<Applications>
    <Application Id="id" Executable="$targetnametoken$.exe" EntryPoint="entrypoint.App">
      <uap:VisualElements AppListEntry="none" .../>

..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45008049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档