所以假设我以全屏模式打开了HTML5视频(之后Webview提高了ContainsFullScreenElementChanged,现在是ContainsFullScreenElement)。如何以编程方式退出它?
我正在钩住SystemNavigationManager.GetForCurrentView().BackRequested,如果存在的话,希望退出全屏模式,如果不是,请调用WebVIEW。GOBD()。
webview没有任何相关的方法,applicationview类也没有帮助。

最佳答案

好吧,我又找了些解决办法。
HTML5的版本为“aa”,可用于全屏或退出。您可以使用webview的InvokeScriptAsync方法运行它。在我的特殊情况下,我最终得到了类似的代码:

string[] args = {
    @"if (document.exitFullscreen) {
        document.exitFullscreen();
      }
      else if (document.msExitFullscreen) {
        document.msExitFullscreen();
      }"
};

await CurrentWebView.InvokeScriptAsync("eval", args);

第一条对我来说确实有效,但我留了第二条以防万一。
顺便说一句,如果您像我一样在InvokeScriptAsync处理程序中调用BackRequested,您可能希望在调用它之前将BackRequestedEventArgs.Handled设置为true,因为这是一个异步方法,并且事件将进一步传递给未处理的其他订阅服务器,这可能会导致不良行为。
编辑:似乎这个脚本在周年更新(14393版本)中不起作用。但是,如果您再添加一个带有webkit前缀的检查,它将起作用。类似的内容(或者您可以只留下一个带有webkit前缀的支票):
string[] args = {
    @"if (document.exitFullscreen) {
        document.exitFullscreen();
    } else if (document.msExitFullscreen) {
        document.msExitFullscreen();
    } else if(document.webkitExitFullscreen) {
        document.webkitExitFullscreen();
    }"
};

10-01 23:17
查看更多