【问题标题】:Cache android webview for minify js and css calls too缓存 android webview 以缩小 js 和 css 调用
【发布时间】:2016-09-26 12:13:49
【问题描述】:

在我的网页中,我启用了缩小 js 和 css 调用。我使用以下方法启用了 android webview 的缓存以获得更快的性能

 mWebView.getSettings().setJavaScriptEnabled(true);
    //mWebView.addJavascriptInterface();
    mWebView.addJavascriptInterface(new MyJavascriptInterface(getActivity(), StartFragment.this.getActivity()), "MyJavascriptInterface");

    String UserAgent = "Wifog android-" + versionCodestr + "/" + versionName;
    mWebView.getSettings().setUserAgentString(mWebView.getSettings().getUserAgentString() + " " + UserAgent);
    //in this call i set the webview client and the calls to process
    setWebViewClient();
    mWebView.setWebChromeClient(new WebChromeClient()
    {
        @Override
        public void onReachedMaxAppCacheSize(long requiredStorage, long quota, WebStorage.QuotaUpdater quotaUpdater) {
            quotaUpdater.updateQuota(requiredStorage*2);
        }
    });

    mWebView.getSettings().setAppCacheMaxSize(1024 * 1024 * 8);
    String appCachePath = getContext().getApplicationContext().getCacheDir().getAbsolutePath();
    System.out.println("App- cache paht webview:  "+appCachePath);
    mWebView.getSettings().setAppCachePath(appCachePath);
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.getSettings().setDomStorageEnabled(true);
    mWebView.getSettings().setAppCacheEnabled(true);
    mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
    mWebView.getSettings().setPluginState(PluginState.ON);
    mWebView.getSettings().setDatabaseEnabled(true);


    if (Build.VERSION.SDK_INT < VERSION_CODES.KITKAT) {
        mWebView.getSettings().setDatabasePath("/data/data/" + mWebView.getContext().getPackageName() + "/databases/");
    }

但是页面的缩小调用仍然没有被缓存并且一次又一次地点击服务器。我如何在android中处理这个?

【问题讨论】:

    标签: javascript android css caching webview


    【解决方案1】:

    试一试:

    mWebView.clearCache(false);
    

    如果还是不行的话

    Method m1 = WebSettings.class.getMethod("setAppCacheEnabled", new Class[]{Boolean.TYPE});
                    m6.invoke(ws, Boolean.TRUE);
    

    在这个ws 中是你的WebSettings 对象

    【讨论】:

    • 谢谢 .. 但这并没有帮助.. 那些缩小 js 和 css 调用仍然在这里
    • 您可以将这些文件保存在您的资产文件夹中
    • 文件大小是多少?
    • 目前还没有。因为它们也将在网络上进行更改
    • @beginner 你有答案吗?
    猜你喜欢
    • 2016-07-25
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    相关资源
    最近更新 更多