我有一个简单的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();"
}
});
我找到了解决您问题的方法。您只需要添加一个新的Javascript,当页面加载时,它将关闭该按钮。以下代码已通过测试并可以正常工作。我签入了C#,但是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';");
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句