user8833355
user8833355

Reputation: 33

How to disable auto play video in Facebook using WebView android?

When I open Facebook through WebView fakebook's videos start playing automatically. How to disable this feature. Here is my code

public String target_url = "https://www.facebook.com/";
    public WebView webView;
    webView = (WebView) findViewById(R.id.webview);
    // WebSettings webSettings = webView.getSettings();
    //webView.loadUrl("http://www.facebook.com");

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setDisplayZoomControls(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
    webView.addJavascriptInterface(this, "FBDownloader");

    
    CookieSyncManager.createInstance(this);
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    CookieSyncManager.getInstance().startSync();

    webView.loadUrl(target_url);

Here i use webview for opening facebook in my app

Upvotes: 0

Views: 671

Answers (1)

Minhal Zafar
Minhal Zafar

Reputation: 36

Use the Following Library to stop the videos from Auto Playing

dependencies { 
//WebLayout
   implementation 'com.github.Justson.AgentWeb:agentweb-core:v4.1.9-androidx'
   implementation 'com.github.Justson:Downloader:v4.1.9-androidx'
}

Here is the Code of How to use this Library

AgentWeb mAgentWeb = AgentWeb.with(this)
            .setAgentWebParent(mLinearLayout, new LinearLayout.LayoutParams(-1, -1))
            .useDefaultIndicator()
            .setWebChromeClient(mWebChromeClient)
            .setWebViewClient(mWebViewClient)
            .setMainFrameErrorView(R.layout.activity_facebook, -1)
            .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
            .setWebLayout(new WebLayout(this))
            .setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)
            .interceptUnkownUrl()
            .createAgentWeb()
            .ready()
            .go(getUrl());

    long n = System.currentTimeMillis();
    Log.i("Info", "init used time:" + (n - p));


    this.mWebView = this.mAgentWeb.getWebCreator().getWebView();
private final com.just.agentweb.WebViewClient mWebViewClient = new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        return super.shouldOverrideUrlLoading(view, request);
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        //do you  work
        Log.i("Info", "BaseWebActivity onPageStarted");
    }

    @Override
    public void onLoadResource(WebView view, String url) {
        super.onLoadResource(view, url);
    }
};
private final com.just.agentweb.WebChromeClient mWebChromeClient = new WebChromeClient() {
    @Override
    public void onReceivedTitle(WebView view, String title) {
        super.onReceivedTitle(view, title);

    }
};

public String getUrl() {
    return "https://m.facebook.com/";
}

Upvotes: 2

Related Questions