众里寻他千百度,蓦然回首,那人却在灯火阑珊处.

众里寻他

将网页保存为离线mht文件,没有找到第三方开源库,网上的例子:

http://blog.csdn.net/dongle2001/article/details/2557434

http://blog.sina.com.cn/s/blog_3fd24f6c0100ig2r.html

当然要想编译通过可能还需要相关的jar包,可以搜到,保存的mht文件格式会有问题,但是目前有问题编码格式有问题,而且有些资源下载不到.

灯火阑珊

后面使用了下uc和apus的离线保存功能,保存的文件打开研究了下,和上面的具体实现不一样,他们产生的mht文件的from源长得有点奇怪,并不是邮箱,而是

<Saved by Blink>
或
<Saved by WebKit>

直觉告诉我,可能是使用其他的开源库或者是原生webKit中的api,然后就各种找,后面发现了这个贴子:
https://lists.webkit.org/pipermail/webkit-gtk/2014-January/001772.html
然后就开始找api,最后在WebView中发现了

     /*** Saves the current view as a web archive.** @param filename the filename where the archive should be placed*/public void saveWebArchive(String filename) {checkThread();mProvider.saveWebArchive(filename);}

后面WebViewClient尝试在onPageFinished后调用下面的逻辑

File file = new File(Environment.getExternalStorageDirectory(),"demo.mht");
webView.saveWebArchive(file.getAbsolutePath());

通过es浏览器查看新生成的文件,果断就有一个demo.mht.而且打开查看内容From就是

<Saved by Blink>

所以网页离线保存的关键就是使用webview的saveWebArchive方法.结果就这么简单.

坑点

  • Kitkat and above 保存方式为原生mht,支持file协议,可以直接访问.而低于Kitkat则保存成功,打开则需要通过io将文件转化为String,然后通过loadDataWithBaseURL方法加载.具体参考下面的贴子.
    http://stackoverflow.com/questions/17484115/save-webpage-for-offline-use-and-invoke-the-same-android/40882679#40882679

  • saveWebArchive 支持版本为api level 11及以上

android网页离线保存相关推荐

  1. Android mht离线文件阅读!

    近期因为驾照考试的需要,某些图解方面的知识只能保存到网页,但是在公司没有足够的时间阅读,决定在公交车上温故而知新,将网页文件保存为 mht 格式的以后,需要在android手机上下载一个能支持mht文 ...

  2. Android网页浏览器开发详解(一)

    Android网页浏览器开发详解(一) 请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客) Androi ...

  3. Android SDK 离线下载安装更新至4.0.3(目前最新) (转)

    原文地址为: Android SDK 离线下载安装更新至4.0.3(目前最新) (转) 转自:http://hi.baidu.com/xiaoyun1227/item/e0ca2ccc06cf6d35 ...

  4. Android平板离线安装数据库Mariadb

    Android平板离线安装数据库Mariadb 一 .安装数据库Mariadb 安装Mariadb之前,先在Android平板上安装termux (1)先下载termux.apk安装 注意:安装ter ...

  5. C#代码实现把网页文件保存为mht文件

    MHT叫"web单一文件".顾名思义,就是把网页中包含得图片,CSS文件以及HTML文件全部放到一个MHT文件里面.而且浏览器可以直接读取得. 由于项目需要,需实现把指定的网页文件 ...

  6. Java两种方式简单实现:爬取网页并且保存

    注:如果代码中有冗余,错误或者不规范,欢迎指正. Java简单实现:爬取网页并且保存 对于网络,我一直处于好奇的态度.以前一直想着写个爬虫,但是一拖再拖,懒得实现,感觉这是一个很麻烦的事情,出现个小错 ...

  7. android 使用SharedPreferences保存对象

    今天,简单讲讲Android如何使用SharedPreferences保存对象. 记得之前写过一遍博客关于android如何使用SharedPreferences保存List<String> ...

  8. android 将byte[]保存到手机

    今天,讲讲如何把程序的byte[]保存到手机,并且作为文件可以读取. package com.example.edittextresearch;import java.io.BufferedOutpu ...

  9. 达内android 代码,深圳达内Android网页源码查看器.pdf

    深圳达内 Android 网页源码查看器 ? 1 <?xml version="1.0" encoding="utf-8"?> 2 < Lin ...

最新文章

  1. HUST 1588 辗转数对
  2. [SOJ] DAG?
  3. WebRTC基本介绍
  4. 【SPOJ - DQUERY】D-query(权值树状数组 或 主席树 或 莫队)
  5. 自动轮播与按钮的联动
  6. 微信公众平台 获取用户列表
  7. SAP License:SAP顾问应具有哪些能力
  8. JavaOO 常用类新增
  9. 高斯消元法(Gauss Elimination) 分析 题解 模板——czyuan原创
  10. wordpress审查元素修改php,WordPress 教程:如何通过 PHP 代码修改表结构和索引
  11. 深度学习 —— 深度置信网络
  12. Cause: java.io.IOException: Could not find resource com/itheima/po/CustomerMapper.xml
  13. python断言语句失败_python断言语句
  14. Ubuntu VirtualBox 安装问题解决
  15. 多波段 “均值标准距”的计算
  16. 今天差点就被黑中介给骗了!!!!!!后怕中。。。
  17. fatal: No url found for submodule path ‘xxx/xxx‘ in .gitmodules gitsubmodule子仓库无法拉取问题
  18. 视频 | 你不知道的开源60年秘史
  19. 计算机技术在电网中的应用,浅析计算机技术在电力系统中的应用
  20. [02-26]网吧母盘网上精华+个人总结=超详细|『 网吧技术软件区 』 - 迈思工作室技术论坛

热门文章

  1. 千军万马网盘下载器1.0
  2. [交互][FWT] UOJ #328. 【UTR #3】量子破碎
  3. 微信公众号编辑菜单栏代码
  4. 地下水采样需要用到什么?
  5. 小程序用户头像昵称获取不到解决办法
  6. CopyTranslator复制即可翻译,一个PDF文本翻译神器终于面世
  7. 摩拜服务器维护,摩拜单车云服务器
  8. 《人工智能》 柴玉梅,张坤丽 编
  9. 设置双击JAD文件打开的模拟器
  10. kdj指标主要看哪个值_kdj主要看哪条线?kdj指标看哪个值。