android网页离线保存
众里寻他千百度,蓦然回首,那人却在灯火阑珊处.
众里寻他
将网页保存为离线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#40882679saveWebArchive 支持版本为api level 11及以上
android网页离线保存相关推荐
- Android mht离线文件阅读!
近期因为驾照考试的需要,某些图解方面的知识只能保存到网页,但是在公司没有足够的时间阅读,决定在公交车上温故而知新,将网页文件保存为 mht 格式的以后,需要在android手机上下载一个能支持mht文 ...
- Android网页浏览器开发详解(一)
Android网页浏览器开发详解(一) 请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客) Androi ...
- Android SDK 离线下载安装更新至4.0.3(目前最新) (转)
原文地址为: Android SDK 离线下载安装更新至4.0.3(目前最新) (转) 转自:http://hi.baidu.com/xiaoyun1227/item/e0ca2ccc06cf6d35 ...
- Android平板离线安装数据库Mariadb
Android平板离线安装数据库Mariadb 一 .安装数据库Mariadb 安装Mariadb之前,先在Android平板上安装termux (1)先下载termux.apk安装 注意:安装ter ...
- C#代码实现把网页文件保存为mht文件
MHT叫"web单一文件".顾名思义,就是把网页中包含得图片,CSS文件以及HTML文件全部放到一个MHT文件里面.而且浏览器可以直接读取得. 由于项目需要,需实现把指定的网页文件 ...
- Java两种方式简单实现:爬取网页并且保存
注:如果代码中有冗余,错误或者不规范,欢迎指正. Java简单实现:爬取网页并且保存 对于网络,我一直处于好奇的态度.以前一直想着写个爬虫,但是一拖再拖,懒得实现,感觉这是一个很麻烦的事情,出现个小错 ...
- android 使用SharedPreferences保存对象
今天,简单讲讲Android如何使用SharedPreferences保存对象. 记得之前写过一遍博客关于android如何使用SharedPreferences保存List<String> ...
- android 将byte[]保存到手机
今天,讲讲如何把程序的byte[]保存到手机,并且作为文件可以读取. package com.example.edittextresearch;import java.io.BufferedOutpu ...
- 达内android 代码,深圳达内Android网页源码查看器.pdf
深圳达内 Android 网页源码查看器 ? 1 <?xml version="1.0" encoding="utf-8"?> 2 < Lin ...
最新文章
- HUST 1588 辗转数对
- [SOJ] DAG?
- WebRTC基本介绍
- 【SPOJ - DQUERY】D-query(权值树状数组 或 主席树 或 莫队)
- 自动轮播与按钮的联动
- 微信公众平台 获取用户列表
- SAP License:SAP顾问应具有哪些能力
- JavaOO 常用类新增
- 高斯消元法(Gauss Elimination) 分析 题解 模板——czyuan原创
- wordpress审查元素修改php,WordPress 教程:如何通过 PHP 代码修改表结构和索引
- 深度学习 —— 深度置信网络
- Cause: java.io.IOException: Could not find resource com/itheima/po/CustomerMapper.xml
- python断言语句失败_python断言语句
- Ubuntu VirtualBox 安装问题解决
- 多波段 “均值标准距”的计算
- 今天差点就被黑中介给骗了!!!!!!后怕中。。。
- fatal: No url found for submodule path ‘xxx/xxx‘ in .gitmodules gitsubmodule子仓库无法拉取问题
- 视频 | 你不知道的开源60年秘史
- 计算机技术在电网中的应用,浅析计算机技术在电力系统中的应用
- [02-26]网吧母盘网上精华+个人总结=超详细|『 网吧技术软件区 』 - 迈思工作室技术论坛