我有一个简单的WebView渲染HTML5页面,在背景中播放视频..我将视频设置为自动播放
browser.getSettings().setMediaPlaybackRequiresUserGesture(false);
除了“开始视频播放”按钮仍然存在外,它仍可正常工作。当我点击按钮时它没有任何作用,因为视频已经在播放..有什么办法可以隐藏这个按钮吗?我搜查了一下,什么也没找到。
编辑:这很有效!browser.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
browser.loadUrl("javascript:document.getElementById('VideoClipPlayButton').click();"
}
});
答案 0 :(得分:1)
我找到了解决问题的方法。您只需添加一个新的Javascript,它将在加载页面时关闭按钮。以下代码已经过测试和运作。我检查了C#,但Java非常相似所以它必须工作。
<强> JAVA 强>
wv.loadUrl("http://app.singular.live/webchannels/298/onair");
wv.getSettings().setMediaPlaybackRequiresUserGesture(false);
wv.getSettings().setPluginState(PluginState.ON);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setAllowFileAccess(true);
wv.setWebViewClient(new WebViewClient()
{
public void onPageFinished(WebView view, String url)
{
//here create new JS find element in page (button) and set visibility to hidden
wv.loadUrl("javascript:document.getElementById('VideoClipPlayButton').style.visibility = 'hidden';");
}
});
C#(XAMARIN)
Button button = FindViewById<Button>(Resource.Id.MyButton);
WebView wv = FindViewById<WebView>(Resource.Id.webView1);
wv.Settings.JavaScriptEnabled = true;
wv.LoadUrl("http://app.singular.live/webchannels/298/onair");
wv.Settings.MediaPlaybackRequiresUserGesture = false;
wv.Settings.PluginsEnabled = true;
wv.Settings.SetPluginState(WebSettings.PluginState.On);
wv.Settings.JavaScriptEnabled = true;
wv.Settings.AllowFileAccess = true;
button.Click += (s, e) =>
{
wv.LoadUrl("javascript:document.getElementById('VideoClipPlayButton').style.visibility = 'hidden';");
};