2014-02-08 3 views
0

내 웹 뷰에 HTML 문자열을로드하고 있습니다. 내 코드 :webView 캐싱이 loadDataWithBaseURL()과 작동하지 않습니다.

public class AboutUsFragment extends SherlockFragment { 
    String url = CommonUtils.aboutUsUrl; 
    private FetchTask fetchTask = null; 
    WebView webView = null; 
    @SuppressLint("SetJavaScriptEnabled") 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.wrapper, container, false); 
     webView = (WebView) rootView.findViewById(R.id.wrapper); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setAppCacheMaxSize(5 * 1024 * 1024); // 5MB 
     webView.getSettings().setAppCachePath(
       getSherlockActivity().getCacheDir().getAbsolutePath()); 
     webView.getSettings().setAllowFileAccess(true); 
     webView.getSettings().setAppCacheEnabled(true); 
     return rootView; 
    } 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     // check whether internet connection is available or not 
     ConnectionDetector cd = new ConnectionDetector(getSherlockActivity()); 
     boolean hasConnection = cd.isConnectingToInternet(); 
     if(hasConnection) { 
      webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 
      fetchTask = new FetchTask(); 
      fetchTask.execute(); 
     } else { 
      MainActivity.networkAvailabilityNotice(getSherlockActivity()); 
      webView.getSettings().setCacheMode(
        WebSettings.LOAD_CACHE_ELSE_NETWORK); 
     } 
    } 

    protected class FetchTask extends AsyncTask<Void, Void, String> { 

     @Override 
     protected String doInBackground(Void... params) { 
      // data fetching from JSON feed 
      return data; 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      super.onPostExecute(result); 
      webView.loadDataWithBaseURL("", result, "text/html", "UTF-8", ""); 
     } 

    } 
} 

문제는 캐시가 작동하지 않는 것입니다. 즉, 웹 페이지가 오프라인 모드로 표시되지 않습니다. 나는 과거에 loadURL() 메소드로 캐시를 제공했다. 오프라인 모드에서 loadDataWithBaseURL()으로 웹보기 캐시를 제공하는 방법은 무엇입니까?

답변

0

좋아, 나는 전형적인 webview 같이 내용을 숨기기 위하여 붙박이 방법을 찾아 내지 않았다. 그래서 텍스트를 .txt 파일에 저장하고 해당 내용을 오프라인 모드로 읽었습니다. :)

관련 문제