如何从HTML5 Windows应用商店应用中的代码关闭MessageDialog?

时间:2013-03-09 17:49:18

标签: javascript html5 windows-store-apps

如标题所示,

如何从HTML5 Windows应用商店应用中的代码中关闭MessageDialog?

到目前为止我的代码:

var msg = new Windows.UI.Popups.MessageDialog("Please wait");
msg.commands.append(new Windows.UI.Popups.UICommand("OK",
    function (command) {
        ...
    }));
msg.showAsync();

然后我想关闭这个弹出的代码,我还没有找到任何方法 在规范中

msg.close();

有办法吗?

感谢

3 个答案:

答案 0 :(得分:1)

您的邮件是“请稍候”这一事实告诉我您可能想要使用其他工具来完成这项工作。

如果你要做的是告诉用户你在后台做了一些他们需要等待的事情,可以考虑使用Progress控件,如下所示:

http://msdn.microsoft.com/en-us/library/windows/apps/hh465487.aspx

如果您使用进度控件,则既可以包含带有所需文本的文本标签,也可以在完成要求用户等待的任何任务时关闭进度控件。

为了回答你原来的问题,我不相信有任何用于以编程方式解除MessageDialog的API,因为这会破坏此控件的交互模式,即应用程序显示消息,然后允许用户在他们准备好的时候解雇它。

希望有所帮助。

有关Windows应用商店应用开发的详细信息,请注册App Builder

答案 1 :(得分:1)

我认为你想要使用弹出窗口,类似于answer。该链接解决了一个稍微不同的问题,因为它在超时后关闭了弹出按钮。

但是,您应该能够定义您和用户可以关闭的弹出按钮。在这两种情况下,您最终都会调用类似的内容:

flyout.winControl.hide(); // Dismiss the flyout

答案 2 :(得分:0)

看看这个......

(function(){
"use strict"; 
    var page = WinJS.UI.Pages.define("/html/cancelcommand.html", { 
        ready: function (element, options) { 
            document.getElementById("cancelCommand").addEventListener("click", cancelCommand_Click, false); 
        } 
    }); 

    // Click handler for the 'cancelCommand' button. 
    // Demonstrates setting the command to be invoked when the 'escape' key is pressed. 
    // Also demonstrates retrieval of the label of the chosen command and setting a callback to a function. 
    // A message will be displayed indicating which command was invoked. 
    // In this scenario, 'Try again' is selected as the default choice, and the 'escape' key will invoke the command named 'Close' 
    function cancelCommand_Click() { 
        // Create the message dialog and set its content 
        var msg = new Windows.UI.Popups.MessageDialog("No internet connection has been found."); 

        // Add commands and set their command handlers 
        msg.commands.append(new Windows.UI.Popups.UICommand("Try again", commandInvokedHandler)); 
        msg.commands.append(new Windows.UI.Popups.UICommand("Close", commandInvokedHandler)); 

        // Set the command that will be invoked by default 
        msg.defaultCommandIndex = 0; 

        // Set the command to be invoked when escape is pressed 
        msg.cancelCommandIndex = 1; 

        // Show the message dialog 
        msg.showAsync(); 
    } 

    function commandInvokedHandler(command) { 
        // Display message 
        WinJS.log && WinJS.log("The '" + command.label + "' command has been selected.", "sample", "status"); 
    } 
}());

http://code.msdn.microsoft.com/windowsapps/Message-dialog-sample-00c928f5/sourcecode?fileId=50972&pathId=1064922824