【问题标题】: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()。有什么建议吗?

【问题讨论】:

    标签: javascript uwp


    【解决方案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() 来告诉打开文件何时关闭第二个视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多