在网络视图上发生某些事件后关闭“内容”对话框

时间:2018-10-30 18:15:28

标签: uwp uwp-xaml

我的UWP应用程序中有一个内容对话框,其中只有一个Web视图。该Web视图基本上显示了一个要求用户做出响应的网页。用户提交响应后,我想关闭此对话框。  content.xaml:

 <localControls:CustomContentDialog
        x:Class="Microsoft.ABC.Desktop.Views.RatingDialog">
         <WebView name="Webview1" height="400" width="650"/>
    </localControls:CustomContentDialog>

有什么想法,一旦我从加载的网页中收到一些回复,如何关闭该内容对话框?

1 个答案:

答案 0 :(得分:0)

  

有什么想法,一旦我从加载的网页中收到一些回复,如何关闭该内容对话框?

您可以使用HTML中的window.external.notify通知应用程序,然后使用ScriptNotify事件处理程序监视消息。您可以遵循代码。有关更多信息,请参阅WebView官方文档。

content.html

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <button onclick="submit()">Submit</button>

    <script type="text/javascript">
        function submit() {
            window.external.notify('true');
        }
    </script>
</body>
</html>

CustomContentDialog.cs

public sealed partial class CustomContentDialog : ContentDialog
{
    public CustomContentDialog()
    {
        this.InitializeComponent();
    }

    private void ContentDialog_Loaded(object sender, RoutedEventArgs e)
    {

        ContentWebView.ScriptNotify += ContentWebView_ScriptNotify;
    }

    private void ContentWebView_ScriptNotify(object sender, NotifyEventArgs e)
    {
        if (e.Value.ToString().Equals("true"))
        {
            this.Hide();
        }
    }

}