如何解决Android WebView setMediaPlaybackRequiresUserGesture(false) 只工作一次
我尝试将 Android WebView 中的视频设置为全屏,为此我将 setmediaplaybackRequiresUserGesture 设置为 false。这是工作一次,但在结束全屏并尝试再次将其设置为全屏后,由于此 js 错误而无法正常工作:
I/chromium: [INFO:CONSOLE(1)] "Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.",source: (1)
我像这样初始化 webview:
webView = root.findViewById(R.id.animeWebView);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(false);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setLoadWithOverviewmode(false);
webView.getSettings().setUseWideViewPort(false);
webView.getSettings().setmediaplaybackRequiresUserGesture(false);
webView.getSettings().setJavaScriptCanopenWindowsAutomatically(true);
我是这样进入全屏的:
getWebView().evaluateJavascript("(function() { document.querySelector(\"#html5_player\").requestFullscreen(); })();",null);
退出:
getWebView().evaluateJavascript("(function() { document.exitFullscreen(); })();",null);
然后我尝试再次进入全屏 => 我上面写的失败。
我使用 getmediaplaybackRequiresUserGesture 检查了该值,它始终为 false。
我使用此 https://github.com/cprcrack/VideoEnabledWebView 将视频设置为全屏。
在 Android 9 上测试 - 编译和目标 Sdk 版本:30 - 最小 Sdk 版本:24
解决方法
这个不干净的解决方法对我有用。
const users = await axios.get()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。