DiFilosofa
DiFilosofa

Reputation: 43

WebView cannot play video in GoogleDrive

So i'm trying to play a video file from Google drive by android WebView with the URL: https://drive.google.com/a/{sthing...}/file/d/{FILE_ID}/view?usp=drivesdk

However i keep getting the error logs from chromnium when pressing the PLAY button

I/chromium: [INFO:CONSOLE(1341)] "Uncaught (in promise) Error: Untrusted URL: https://youtube.googleapis.com/videoplayback?...", source: ... (1341)

An unable to play the video. I've tried with

webview.setWebChromeClient(new WebChromeClient())

and

public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {

    handler.proceed(); // Ignore SSL certificate errors
}

But can't seems to get the video to play.

Is there anyway to play GoogleDrive's video with Android WebView? Thanks in advance.

My code:

webPreviewDocument.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        progressBar.setVisibility(View.GONE);
    }
});
WebSettings webSettings = webPreviewDocument.getSettings();
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
webSettings.setLoadWithOverviewMode(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setUseWideViewPort(true);
webSettings.setSaveFormData(false);
webSettings.setDomStorageEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setPluginState(WebSettings.PluginState.ON);
webPreviewDocument.loadUrl(url);

Upvotes: 4

Views: 3085

Answers (2)

Quentin G.
Quentin G.

Reputation: 1003

I had the same problem and this worked for me :

CookieManager.getInstance().setAcceptCookie(true);
if (android.os.Build.VERSION.SDK_INT >= 21) {
    CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
}

WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);

webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new MyWebChromeClient());

Upvotes: 10

user12365792
user12365792

Reputation:

Add these lines before loading HTML content to your WebView.

webView.Settings.PluginsEnabled = true;
webView.Settings.JavaScriptEnabled = true;
webView.Settings.SetPluginState (WebSettings.PluginState.On);
webView.SetWebViewClient (new WebViewClient ());

Upvotes: 0

Related Questions