所以假设我以全屏模式打开了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();
}"
};