gpt4 book ai didi

c# - 如何以编程方式退出 WebView 中的全屏模式?

转载 作者:太空狗 更新时间:2023-10-30 01:33:06 25 4
gpt4 key购买 nike

假设我在全屏模式下打开了 html5 视频(之后 WebView 引发了 ContainsFullScreenElementChanged 并且 ContainsFullScreenElement 现在是 true)。我如何以编程方式退出它?

我正在连接到 SystemNavigationManager.GetForCurrentView().BackRequested,如果它存在,我想退出全屏模式,如果不存在,则调用 WebView.GoBack()。

WebView 没有任何相关方法,ApplicationView 类也没有帮助。

最佳答案

好的,所以在进一步搜索之后我找到了解决方案。

HTML5 有 fullscreen api , 可用于要求全屏或退出全屏。您可以使用 WebView 的 InvokeScriptAsync 方法运行它。在我的特殊情况下,我最终得到了类似于这样的代码:

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

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

第一个子句实际上对我有用,但我留下了第二个以防万一。

顺便说一句,如果您像我一样在 BackRequested 处理程序中调用 InvokeScriptAsync,您可能需要将 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();
}"
};

关于c# - 如何以编程方式退出 WebView 中的全屏模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com