android webview 真正实现---保存整个网页源码
来源:互联网 发布:修改软件的版本号 编辑:程序博客网 时间:2024/06/05 15:36
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(){ @Override public 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{ @JavascriptInterface public void getHtmlSource(String html,String charactersets){ Log.i(TAG,"getHtmlSource=="+html); mHtml=html; mCharactersets=charactersets; mHandler.sendEmptyMessage(100); } } private Handler mHandler=new Handler(){ @Override public 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; }
这个功能花了一周时间,心累!
阅读全文
0 0
- android webview 真正实现---保存整个网页源码
- 保存整个网页
- Android实现真正的禁止WebView滚动
- 整个网页保存为图片
- Android:在WebView中获取网页源码
- Android:在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android 在WebView中获取网页源码
- Android: 在WebView中获取网页源码
- Android显示webview加载的网页源码
- Android: 在WebView中获取网页源码
- Palindromic Number (25)
- 热部署插件 JRebel 安装激活及使用
- 文本编辑工具Vim及三种模式用法
- Linux下live555的编译
- 转:PHP中防止SQL注入的方法
- android webview 真正实现---保存整个网页源码
- NOIP模拟(11.07)T3 图
- 2017模拟赛 现代艺术(二维差分)
- 【技术教程】MySQL to SequoiaDB数据迁移
- Java中的编码与解码
- Springmvc之dao.xml
- mybaits动态 SQL
- asp.net发布网站的详细步骤
- Linux学习