flutter - 如何以编程方式从 WebView 中的全屏退出?
问题描述
我的小部件树看起来像这样,
Widget build(context) {
return Consumer<SocketModel>(
builder: (ctx, model, snapshot) {
if(model.forceLeave == true) {
return Text("Your time is up")
}
return WebViewWithAHtmlPlayer()
}
)
}
上面的代码不是真正的代码,但为了清楚起见,我删除了大部分部分。这就是基本上发生的事情。webview里面的html播放器可以播放视频。我有一个套接字连接,它跟踪时间并且在超时forceLeave
变为真后导致运行if
条件。
当我不使 html 视频播放器全屏时,这有效。但是,如果forceLeave
当我在 html 播放器上全屏显示时,屏幕变为空白,背景为白色。由于我禁用了后退按钮,我的应用程序就像冻结一样(但实际上不是。)
如何退出全屏视图?
我已经尝试过,
SystemChrome.restoreSystemUIOverlays()
在WebView
包装小部件的处置中。但它仍然没有退出全屏视图。
如何在上述受控结构中正确退出当前全屏视图?例如,有没有办法做类似的事情,
builder: (ctx, model, snapshot) {
if(model.forceLeave == true) {
exitFullScreen() // <-- Do something like this ?
return Text("Your time is up")
}
return WebViewWithAHtmlPlayer()
}
解决方案
import "dart:html"
document.exitFullscreen();
就是这样 :)
推荐阅读
- double - Android Studio 在 Operands.DOUBLE 上显示错误
- c#-4.0 - 在 BrightPearl API 上搜索订单
- sql-server - 使用 SSIS 将图像从 SQL Server 表导出到文件夹不起作用
- python - 尝试从两个列表创建字典时,某些元素会丢失
- c# - 使用 IsMatch 时的 REGEX 性能问题
- python - 在记事本++中的匹配模式之前添加具有特定模式的新行
- css - 当项目大小不同时,自动填充和 minmax() 不起作用
- javascript - 在单独函数中的“if”语句之后显示组件(React)
- php - 改进数据库和 SQL 请求
- android - RecyclerView中的ArrayList大小为零并且没有数据显示