在 UWP Javascript 中,有啥方法可以检测到辅助窗口已关闭?

Posted

技术标签:

【中文标题】在 UWP Javascript 中,有啥方法可以检测到辅助窗口已关闭?【英文标题】:In UWP Javascript, is there any way to detect that a secondary window has closed?在 UWP Javascript 中,有什么方法可以检测到辅助窗口已关闭? 【发布时间】:2019-10-20 01:17:45 【问题描述】:

使用 WinJS projection sample 我已经实现了一些代码来打开第二个窗口

window.view = window.open(url, null, "msHideView=no");

现在我要做的是在window.view 关闭时设置回调,例如按下右上角的X 按钮。类似于view.on('close', function()view.addEventListener()。有什么建议吗?

【问题讨论】:

【参考方案1】:

Windows.UI.Core.Preview Namespace 中有一个 SystemNavigationManagerPreview.CloseRequested Event。当用户调用系统按钮关闭(应用标题栏角落的“x”按钮)时,会发生此事件。

要使此 API 成功运行,您需要在 'package.appxmanifest' 文件中添加受限功能 confirmAppClose

xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
     IgnorableNamespaces="uap mp rescap">
<Capabilities>
   <rescap:Capability Name="confirmAppClose"/>
</Capabilities>
/*secondaryView.js*/
var Preview = Windows.UI.Core.Preview;
Preview.SystemNavigationManagerPreview.getForCurrentView().addEventListener("closerequested", onCloseRequested);

function onCloseRequested(eventArgs) 
    /*your code*/

【讨论】:

我知道在哪里放置 &lt;Capabilities&gt;... xml,但不知道 xmlns:rescap。在我看来,这甚至不像是有效的 xml。 在secondaryView.js 中实现window.opener.postMessage() 来告诉打开文件何时关闭第二个视图。

以上是关于在 UWP Javascript 中,有啥方法可以检测到辅助窗口已关闭?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以在 Javascript 中删除这些引号?

UWP的类库和windows运行时组件有啥区别

UWP 上的 Accelerometer.Shaken 事件不起作用,有啥解决方案吗?

有啥方法可以在不使用 getImageData() 的情况下在 JavaScript 中找到像素的颜色?

UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv

有啥方法可以从 Windows 10 中的 c# 桌面应用程序使用蓝牙 LE?