webview和H5 清除缓存和缓存文件删除。

webview和H5 清除缓存和缓存文件删除。

缓存请看:http://blog.csdn.net/menglele1314/article/details/45717531

import java.io.File; 

  

import
android.app.Activity; 

import
android.graphics.Bitmap; 

import
android.os.Bundle; 

import
android.util.Log; 

import
android.view.View; 

import
android.webkit.JsPromptResult; 

import
android.webkit.JsResult; 

import
android.webkit.WebChromeClient; 

import
android.webkit.WebSettings; 

import
android.webkit.WebSettings.RenderPriority; 

import
android.webkit.WebView; 

import
android.webkit.WebViewClient; 

import
android.widget.RelativeLayout; 

import
android.widget.TextView; 

import
android.widget.Toast; 

  

public
class
MainActivity extends
Activity { 

  

    private
static final
String APP_CACAHE_DIRNAME =
"/webcache"

    private
TextView tv_topbar_title; 

    private
RelativeLayout rl_loading; 

    private
WebView mWebView; 

    private
String url; 

  

    @Override

    protected
void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.activity_main); 

           

        url =
"http://www.sina.com.cn"

       
initView(); 

    

  

    private
void initView() { 

          

        tv_topbar_title = (TextView) findViewById(R.id.tv_topbar_title); 

     

        rl_loading = (RelativeLayout) findViewById(R.id.rl_loading); 

          

        mWebView = (WebView) findViewById(R.id.mWebView); 

          

        initWebView(); 

          

        mWebView.setWebViewClient(new
WebViewClient() { 

  

            @Override

            public
void onLoadResource(WebView view, String url) { 

                        

                super.onLoadResource(view, url); 

            

  

            @Override

            public
boolean shouldOverrideUrlLoading(WebView webview, String url) { 

                  

                webview.loadUrl(url); 

  

                return
true

            

  

            @Override

            public
void onPageStarted(WebView view, String url, Bitmap favicon) { 

                rl_loading.setVisibility(View.VISIBLE);
// 显示加载界面 

            

  

            @Override

            public
void onPageFinished(WebView view, String url) { 

  

                String title = view.getTitle(); 

                tv_topbar_title.setText(title); 

                tv_topbar_title.setVisibility(View.VISIBLE); 

                rl_loading.setVisibility(View.GONE);
// 隐藏加载界面 

            

  

            @Override

            public
void onReceivedError(WebView view,
int errorCode, String description, String failingUrl) { 

  

                rl_loading.setVisibility(View.GONE);
// 隐藏加载界面 

  

                Toast.makeText(getApplicationContext(),
""

                        Toast.LENGTH_LONG).show(); 

            

        }); 

  

        mWebView.setWebChromeClient(new
WebChromeClient() { 

  

            @Override

            public
boolean onJsAlert(WebView view, String url, String message, JsResult result) { 

  

                Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show(); 

                result.confirm(); 

  

                return
true

            

  

            @Override

            public
boolean onJsConfirm(WebView view, String url, String message, JsResult result) { 

  

                return
super.onJsConfirm(view, url, message, result); 

            

  

            @Override

            public
boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) { 

 

                return
super.onJsPrompt(view, url, message, defaultValue, result); 

            

        }); 

          

        mWebView.loadUrl(url); 

    

  

    private
void initWebView() { 

          

        mWebView.getSettings().setJavaScriptEnabled(true); 

        mWebView.getSettings().setRenderPriority(RenderPriority.HIGH); 

        mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 
//设置 缓存模式选择自己想要的模式

        // 开启 DOM storage API 功能 

        mWebView.getSettings().setDomStorageEnabled(true); 

        //开启 database storage API 功能 

        mWebView.getSettings().setDatabaseEnabled(true);  

        String cacheDirPath = getFilesDir().getAbsolutePath()+APP_CACAHE_DIRNAME; 

        //设置数据库缓存路径 

        mWebView.getSettings().setDatabasePath(cacheDirPath); 

        //设置  Application Caches 缓存目录 

        mWebView.getSettings().setAppCachePath(cacheDirPath); 

        //开启 Application Caches 功能 

        mWebView.getSettings().setAppCacheEnabled(true); 

    

      

    /**

     * 清除WebView缓存  在onDestroy调用这个方法就可以了

     */

    public
void clearWebViewCache(){ 

          

        //清理Webview缓存数据库 

        try

            deleteDatabase("webview.db");  

            deleteDatabase("webviewCache.db"); 

        }
catch (Exception e) { 

            e.printStackTrace(); 

        

          

        //WebView 缓存文件 

        File appCacheDir =
new File(getFilesDir().getAbsolutePath()+APP_CACAHE_DIRNAME); 

        Log.e(TAG,
"appCacheDir path="+appCacheDir.getAbsolutePath()); 

          

        File webviewCacheDir =
new File(getCacheDir().getAbsolutePath()+"/webviewCache"); 

        Log.e("path===",
"webviewCacheDir path="+webviewCacheDir.getAbsolutePath()); 

          

        //删除webview 缓存目录 

        if(webviewCacheDir.exists()){ 

            deleteFile(webviewCacheDir); 

        

        //删除webview 缓存 缓存目录 

        if(appCacheDir.exists()){ 

            deleteFile(appCacheDir); 

        

    

      

    /**

     * 递归删除 文件/文件夹

     

     * @param file

     */

    public
void deleteFile(File file) { 

  

        Log.i(TAG,
"delete file path="
+ file.getAbsolutePath()); 

          

        if
(file.exists()) { 

            if
(file.isFile()) { 

                file.delete(); 

            }
else if
(file.isDirectory()) { 

                File files[] = file.listFiles(); 

                for
(int
i =
0; i < files.length; i++) { 

                    deleteFile(files[i]); 

                

            

            file.delete(); 

        }
else

            Log.e("delete===",
"delete file no exists "
+ file.getAbsolutePath()); 

        

    

  

}

时间: 2024-10-18 18:43:51

webview和H5 清除缓存和缓存文件删除。的相关文章

清除缓存的实现

// 在子线程计算缓存大小 dispatch_async(dispatch_get_global_queue(0, 0), ^{// 获得缓存文件夹路径 unsigned long long size = file.fileSize; size += [SDImageCache sharedImageCache].getSize; NSString *sizeText = nil; if (size >= pow(10, 9)) { // size >= 1GB sizeText = [NSS

ios获取缓存文件的大小并清除缓存

移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage. 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯.购物.阅读类app的标配功能. 今天介绍的离线缓存功能的实现,主要分为缓存文件大小的获取.清除缓存文件的实现. 1. 获取缓存文件的大小-( float )readCacheSize{    NSString *cachePath = [NSSearchPathForDirectoriesInDomains (

Linux删除文件 清除缓存

相信很多测试 经常会经历开发叫你清除缓存这种事. 那我们要怎么清呢? 一.首先,确认你要清除的缓存在哪个目录下,然后切换到该目录下,比如 我现在知道我的的缓存目录是在newerp这个目录下,则如图 二.然后 执行命令 rm -rf Runtime rm -rf 这个命令是什么意思呢? rm -rf 是删除这个文件下的所有目录 注意 这是一个危险命令,它是删除 你后面跟着文件的所有目录,所以你删除时要确认是不是可以清除 如果说你是不确定,你就加个-i 这个系统会跟你逐一确认每一个文件是否删除,如果

ios webview清除缓存

UIWebView清除Cookie: //清除cookies NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (cookie in [storage cookies]) { [storage deleteCookie:cookie]; } UIWebView清除缓存: //清除UIWebView的缓存 [[NSURLCacheshared

iOS webview 清除缓存

使用iOS的UIWebview会自动进行缓存,我们在开发的时候要记得清除Cookie和缓存. _webView = nil; [self cleanCacheAndCookie]; 调用的方法代码如下: /**清除缓存和cookie*/ - (void)cleanCacheAndCookie{ //清除cookies NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookie

清除缓存功能的实现代码

缓存文件存储在沙盒文件夹Caches中,实现清除缓存,主要就是实现找到文件 - - 删除文件(其中涉及到计算文件大小) 以下是实现清除缓存的主要代码 //获取缓存路径 - (NSString *)getCache{ NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]; NSLog(@"%@",cachePath)

android 清除缓存功能

本应用数据清除管理器 DataCleanManager.java   是从网上摘的 忘了 名字了 对不住了 载入一个webview   产生缓存  众所周知的webview是产生缓存的主要原因之中的一个 webview载入之后   点击button  查询缓存  然后清除缓存  再查询缓存  能够看到  缓存确实被清除了 或者咋webview载入之后  点击button查询缓存  然后去设置里面应用程序  看程序的缓存是不是一样的  答案肯定是一样 以下是代码 DataCleanManager.

Android开发记录20-获取缓存大小和清除缓存功能

Android开发记录20-获取缓存大小和清除缓存功能 转载请注明:IT_xiao小巫 博客地址:http://blog.csdn.net/wwj_748 前言 本篇博客要给大家分享的如何获取应用缓存的大小和清除缓存的功能,我们知道我们应用当中经常会产生一些数据,比如图片的缓存,数据库文件,配置文件等等.我们开发产品的时候,可能会有这样的一个需求清除应用内缓存的数据,可以让用户选择删除应用内产生的数据,这也是比较人性化的设计点.例如笔者参与开发的一款产品的设置界面就提供了清除缓存的功能,如下图所

iOS开发日记14-NSFileManager(沙盒和清除缓存)

今天博主有一个文件管理的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像Android,没有SD卡概念,不能直接访问图像.视频等内容.iOS应用产生的内容,如图像.文件.缓存内容等都必须存储在自己的沙盒内.默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp.Library包含Caches.Preferences目录. Documents:苹果建议将程序创建产生的文件以及应用浏览产生的文件数