Come hai sottolineato tu stesso, tutte le istruzioni di autoplay nel tuo codice verranno ignorate al caricamento. Quindi implementeremo una funzione che ottiene il video nel corpo e inizia a riprodurlo.
il codice JavaScript seguente potrebbe fare questo:
(function() {
document.getElementsByTagName('video')[0].play();
})()
Per eseguire questo codice dopo che la pagina è stata caricata, abbiamo bisogno di impostare un WebViewClient e implementare onPageFinished()
webview.setWebViewClient(new CordovaWebViewClient(this, webview) {
// autoplay when finished loading via javascript injection
public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); }
});
final WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setPluginState(WebSettings.PluginState.ON);
A full example:
webview = new CordovaWebView(this);
setContentView(webview);
final WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setPluginState(WebSettings.PluginState.ON);
webview.setWebViewClient(new CordovaWebViewClient() {
// autoplay when finished loading via javascript injection
public void onPageFinished(WebView view, String url) { webview.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); }
});
webview.loadUrl("http://html5demos.com/video");
Hai provato la soluzione proposta? – lifeisfoo