如何无需配置包清单URI实现UWP WebView应用退出功能?
无需配置包清单URI实现UWP WebView退出应用的方案
不需要配置包清单URI也能实现这个退出功能,核心是通过WebView.ScriptNotify事件配合UWP原生退出API完成,具体步骤如下:
绑定ScriptNotify事件
在UWP项目的代码后台(比如MainPage.xaml.cs),为WebView控件绑定ScriptNotify事件处理方法,示例代码:public MainPage() { InitializeComponent(); MyWebView.ScriptNotify += MyWebView_ScriptNotify; // 加载目标HTTPS地址 MyWebView.Source = new Uri("https://your-target-url.com"); }处理事件并执行退出操作
在事件处理方法中,判断接收到的消息是否为约定的"close",如果是则弹出确认对话框,点击"是"时调用UWP退出API:private void MyWebView_ScriptNotify(object sender, NotifyEventArgs e) { if (e.Value == "close") { var dialog = new MessageDialog("确定要退出应用吗?", "提示"); dialog.Commands.Add(new UICommand("是", cmd => { // 退出UWP应用 Application.Current.Exit(); })); dialog.Commands.Add(new UICommand("取消")); _ = dialog.ShowAsync(); } }默认支持HTTPS源的ScriptNotify
对于HTTPS来源的页面,WebView默认允许window.external.notify()触发ScriptNotify事件,不需要在包清单中额外配置URI,你已写的JS代码window.external.notify("close");可以直接生效。
注:Application.Current.Exit()是UWP官方认可的应用退出方式,调用后会直接终止应用进程。
内容的提问来源于stack exchange,提问作者Tharun Koti
相关产品推荐
相关产品推荐

