Сохранение/чтение Web-страниц
- private final String webarchive = "application/x-webarchive-xml";
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- private boolean savePage(WebView view, String folder, String name) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
- String path = (folder.endsWith("/") ? folder : folder.concat("/"))
- .concat(name);
- try {
- File file = new File(folder);
- if (!file.exists()) return false; //IO error
- } catch (Exception ex) {
- ex.printStackTrace();
- return false; //IO error
- }
- try {
- File file = new File(path);
- if (!file.exists()) {
- file.createNewFile();
- if (!file.exists())
- return false; //invalid filename
- }
- file.delete();
- file = null;
- } catch (Exception ex) {
- ex.printStackTrace();
- return false;
- }
- view.saveWebArchive(path);
- return true; //OK
- } else
- return false; //sdk not supported, need SDK >= API11
- }
- //NOTE: need Internet connection for correct loading saved page
- private boolean readWebPage(WebView view, String fileName) {
- try {
- File file = new File(fileName);
- FileInputStream is = new FileInputStream(file);
- byte[] buffer = new byte[(int) file.length()];
- is.read(buffer);
- is.close();
- String data = new String(buffer, "UTF-8");
- buffer = null;
- int start = data.indexOf("<url>") + "<url>".length();
- int end = data.indexOf("</url>", start);
- String url = new String(Base64.decode(data.substring(start, end),
- Base64.DEFAULT), "UTF-8");
- addressEdit.setText(url);
- view.loadDataWithBaseURL(null /*base url, if use RFC scheme http, ftp etc, this method equals loadData()*/,
- data, webarchive, "UTF-8", url/*history url for reloading page if use forward navigation*/);
- data = null;
- return true;
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return false;
- }
1) будет работать на Android 3.0 и выше
2) нужно интернет соединение, чтобы вебкит корректно загрузил страничку (она НЕ ПЕРЕЗАГАРУЖАЕТЬСЯ(!) из сети)
2) нужно интернет соединение, чтобы вебкит корректно загрузил страничку (она НЕ ПЕРЕЗАГАРУЖАЕТЬСЯ(!) из сети)