Search code examples
androidandroid-webview

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);

Solution

  • 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());