我怎么能在Android webview中禁用gif动画?

时间:2016-08-27 18:02:31

标签: android webview

我在Android浏览器项目上工作

许多网站都使用GIF动画和广告。我如何在android webview中禁用GIF动画?

1 个答案:

答案 0 :(得分:0)

只需注入一个javascript,即可在网页完成加载后递归冻结gif。你是怎么做的,

  1. 首先将此javascript复制到您的assets文件夹(如果文件夹不可用 然后在res目录中创建文件夹) - gif_freezer.js
  2. 在班级中添加此方法
  3. private void injectScriptFile(WebView view, String scriptFile) {
            InputStream input;
            try {
                input = getAssets().open(scriptFile);
                byte[] buffer = new byte[input.available()];
                input.read(buffer);
                input.close();

            String encoded = Base64.encodeToString(buffer, Base64.NO_WRAP);
            view.loadUrl("javascript:(function() {" +
                    "var parent = document.getElementsByTagName('head').item(0);" +
                    "var script = document.createElement('script');" +
                    "script.type = 'text/javascript';" +
                    // Tell the browser to BASE64-decode the string into your script !!!
                    "script.innerHTML = window.atob('" + encoded + "');" +
                    "parent.appendChild(script)" +
                    "})()");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    

    }

    1. String encoded = Base64.encodeToString(buffer, Base64.NO_WRAP); view.loadUrl("javascript:(function() {" + "var parent = document.getElementsByTagName('head').item(0);" + "var script = document.createElement('script');" + "script.type = 'text/javascript';" + // Tell the browser to BASE64-decode the string into your script !!! "script.innerHTML = window.atob('" + encoded + "');" + "parent.appendChild(script)" + "})()"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 方法内放置代码,

      onPageFinished
      多数民众赞成......