-
-
Save nhannt201/56e60edd325132969caad5832cc410a9 to your computer and use it in GitHub Desktop.
simple trick to autoplay an html5 video element in a webview. (inject javascript to play on load)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.annotation.SuppressLint; | |
import android.app.Activity; | |
import android.os.Bundle; | |
import android.webkit.WebChromeClient; | |
import android.webkit.WebSettings; | |
import android.webkit.WebView; | |
import android.webkit.WebViewClient; | |
public class MainActivity extends Activity { | |
private WebView webview; | |
@SuppressLint("SetJavaScriptEnabled") | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
webview = new WebView(this); | |
setContentView(webview); | |
final WebSettings settings = webview.getSettings(); | |
settings.setJavaScriptEnabled(true); | |
settings.setJavaScriptCanOpenWindowsAutomatically(true); | |
settings.setPluginState(WebSettings.PluginState.ON); | |
webview.setWebViewClient(new WebViewClient() { | |
// autoplay when finished loading via javascript injection | |
public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); } | |
}); | |
webview.setWebChromeClient(new WebChromeClient()); | |
webview.loadUrl("http://html5demos.com/video"); | |
} | |
@Override | |
protected void onPause() { | |
super.onPause(); | |
webview.onPause(); | |
} | |
@Override | |
protected void onResume() { | |
webview.onResume(); | |
super.onResume(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
we can use it to improve to feature autoplay video or audio on Webview. This is a great way!!!