在chrome的webview中无法全屏显示html5视频

问题描述:

我一直在寻找这个答案一段时间,但我并没有真正得到任何地方。我的问题是关于计算机上的Chrome应用程序内部的webview,而不是Android。如果我在webview中嵌入了html5视频,全屏按钮不起作用。所有其他的视频控制工作正常。我已经做了一些搜索,人们都说webview并不完全支持html5 API。这仍然是这样吗?我看到的答案相当陈旧,而且我最近无法找到任何东西。在chrome的webview中无法全屏显示html5视频

任何建议/答案将不胜感激!谢谢!

它从版本43支持html5全屏,您可以使用全屏权限API: 请参阅event-permissionrequestFullscreenPermissionRequest。 基本上,你要 “允许()” 的许可,某事像:

webview.addEventListener('permissionrequest', function(e) { 
 
    if (e.permission === 'fullscreen') { 
 
    e.request.allow(); 
 
    } 
 
});

+0

谢谢!我会试一试! –

除了通过设置全屏许可,允许它的lazyboy的回答是:

webview.addEventListener('permissionrequest', function(e) { 
    if (e.permission === 'fullscreen') { 
    e.request.allow(); 
    } 
}); 

也可能需要将web视图尺寸本身设置为屏幕尺寸,因为有时HTML5视频可能仅在web视图(而不是屏幕)内全部显示。可以这样做:

document.addEventListener('webkitfullscreenchange', function(){ 
if (chrome.app.window.current().isFullscreen()){ 
    webview.style.height = screen.height + 'px'; 
    webview.style.width = screen.width + 'px'; 
} 
else{ 
    /*get webview to original dimensions*/ 
}; 
}); 

webkitfullscreenchange监听全屏变化。 如果chrome窗口是全屏chrome.app.window.current().isFullscreen(),它将webview的宽度和高度分别设置为屏幕宽度和高度。 如果窗口不是全屏,则可以将webview尺寸返回到所需的尺寸。

+0

顺便说一下,在调用webkitfullscreenchange'时,'chrome.app.window.current()。isFullscreen()'已经是false了,你必须这样做:'if(!chrome.app.window.current())。 isFullscreen())//全屏,使用屏幕尺寸作为webview的高度和宽度 } else { //非全屏,使用原始webview尺寸 } – bithavoc