android webview 真正实现---保存整个网页源码
webview部分:
webView = (WebView) findViewById(R.id.webview);WebSettings webSettings = webView.getSettings();webSettings.setJavaScriptEnabled(true);webView.addJavascriptInterface(new JsInterface(), "JsInterface");webView.loadUrl("view-source:https://www.baidu.com/");webView.setWebViewClient(new WebViewClient(){@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);Log.i(TAG,"onPageFinished=="+url);String js="document.execCommand('selectall');"+"var txt;" +"if (window.getSelection) {" +"txt = window.getSelection().toString();" +"} else if (window.document.getSelection) {" +"txt = window.document.getSelection().toString();" +"} else if (window.document.selection) {" +"txt = window.document.selection.createRange().text;" +"}"+"var charactersets = document.characterSet;"+"JsInterface.getHtmlSource(txt,charactersets);";if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {webView.evaluateJavascript("javascript:" + js, null);Log.i(TAG, "evaluateJavascript-javascript");} else {webView.loadUrl("javascript:" + js);Log.i(TAG, "loadUrl-javascript");}}});}
js回调:
class JsInterface{@JavascriptInterfacepublic void getHtmlSource(String html,String charactersets){Log.i(TAG,"getHtmlSource=="+html);mHtml=html;mCharactersets=charactersets;mHandler.sendEmptyMessage(100);}}private Handler mHandler=new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);saveHtml(mHtml,mCharactersets);}};
保存到本地:
public boolean saveHtml(String html,String charactersets) {System.out.println("SaveHtml======================");SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS");String name=simpleDateFormat.format(new Date())+".html";File file =new File(Environment.getExternalStorageDirectory()+File.separator+Environment.DIRECTORY_DOWNLOADS+File.separator+name);try {if(file.exists()){file.delete();}file.createNewFile();} catch (IOException e) {e.printStackTrace();}try {Writer out = null;out = new OutputStreamWriter(new FileOutputStream(file.getAbsolutePath(), false), charactersets);out.write(html);out.close();Log.i(TAG,"saveHtml=="+file.getAbsolutePath());} catch (Exception e) {return false;}return true;}
这个功能花了一周时间,心累!
android webview 真正实现---保存整个网页源码相关推荐
- Android学习笔记---24_网络通信之网页源码查看器
24_网络通信之网页源码查看器 2013-03-18 24_网络通信之网页源码查看器 ------------------------------------ 1.界面:一个输入text框,输入一个网 ...
- Android 在WebView中获取网页源码
原文链接:http://www.cnblogs.com/hibraincol/archive/2011/10/26/2224866.html 1. 使能javascript: 1 webView.ge ...
- Android: 在WebView中获取网页源码
1. 使能javascript: ? 1 webView.getSettings().setJavaScriptEnabled(true); 2. 编写本地接口 ? 1 2 3 4 5 finalcl ...
- 达内android 代码,深圳达内Android网页源码查看器.pdf
深圳达内 Android 网页源码查看器 ? 1 <?xml version="1.0" encoding="utf-8"?> 2 < Lin ...
- android查看网页源码,流数据
工具: 获取流数据 package com.glsite.htmlviewer;import java.io.ByteArrayOutputStream; import java.io.InputSt ...
- webbrowser抓取php网页源码,获取webbrowser控件 网页的源码(收藏)
获取webbrowser控件 网页的源码(收藏) 翻译|其它|编辑:郝浩|2005-04-28 09:45:00.000|阅读 3152 次 概述: 我在网上找到使用rft控件保存webbrowse文 ...
- webclient无法获取html文件,C# WebClient获取网页源码的方法
效果如图 完整代码如下using System; using System.Collections.Generic; using System.ComponentModel; using System ...
- [爬虫][python][入门][网页源码][百度图片][豆瓣TOP250]
Robots协议 查看爬取规则 遵守相关法律法规 Robots协议(也称为爬虫协议.机器人协议等)的全称是"网络爬虫排除标准"(Robots Exclusion Protocol) ...
- android 代码发adb,Android预安装软件adb命令编译源码
Android预安装软件&adb命令&编译源码 发布时间:2020-06-02 17:28:41 来源:51CTO 阅读:895 作者:年少的风 1.预安装软件: 将eclipse下的 ...
- Python爬取网页源码,图片和文字到本地
import re import os import os.path from time import sleep from urllib.parse import urljoin from urll ...
最新文章
- swoole安装异步reids
- Java 多线程 之 suspend挂起 线程实例
- 计算机虚拟内存的设置
- 信息竞赛进阶指南--搜索相关(模板)
- YbtOJ#20060-[NOIP2020模拟赛B组Day3]字串修改【模拟】
- python array函数_Python 中的range()函数与array()函数
- Leetcode--455. 分发饼干
- MySQL学习笔记:MySQL管理
- iOS中创建动态库及调用方法
- luoguP3912 素数个数
- kindeditor php配置,KindEditor-编辑器配置参数属性 | 小灰灰博客
- 最大流Dinic算法
- Android Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
- Linq 语法的一系列问题,菜鸟求解。
- 使用第三方广告服务器的好处
- 【potplayer安装及设置LAV Splitter】
- Excel表格多个工作表数据汇总求和
- [46]python画出心形图
- 视频在线发布网站HTML模板分享
- DevC++ 下载和安装
热门文章
- 支付宝PM告诉你,互联网产品经理的工作职责有哪些?
- 官方固件库V1.4版本介绍
- 人脸识别最全综述:详解人脸识别技术、人才、趋势
- mysql统计每个学生的选课门数_SQL一个查询中包含两个聚集函数怎么弄啊例如,查询每名学生的选课门数和平均成绩怎么弄啊...
- APP赚钱盈利的8大方法
- 计算图像中任意四个点连成的四边形面积与Ground truth的IOU(Python)
- 360云盘php,360云盘外链解析php源码
- Markdown转Jupyter
- java 数组定义是必须指定长度吗
- 十大热门职位发布 高薪行业一目了然