【问题标题】:How to disable auto play video in Facebook using WebView android?如何使用 WebView android 在 Facebook 中禁用自动播放视频?
【发布时间】:2021-08-15 14:17:22
【问题描述】:

当我通过 WebView 打开 Facebook fakebook 的视频开始自动播放。如何禁用此功能。 这是我的代码

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

这里我使用 webview 在我的应用中打开 facebook

【问题讨论】:

  • 你不能做任何事情,基本上你只是将网站加载到 WebView 中,你无法控制网站显示的内容。
  • 我使用 webView.setWebViewClient() 来控制我的所有视图。请告诉我如何禁用 Facebook 中的自动播放视频!

标签: android android-studio webview


【解决方案1】:

使用以下库停止自动播放视频

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

这里是如何使用这个库的代码

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/";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-26
    • 2012-02-20
    • 1970-01-01
    • 2016-12-22
    • 2013-12-11
    • 2018-08-21
    • 1970-01-01
    • 2011-12-31
    相关资源
    最近更新 更多