android webview 真正实现---保存整个网页源码
生活随笔
收集整理的這篇文章主要介紹了
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 真正实现---保存整个网页源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python UnicodeEncod
- 下一篇: “逆鬼”muma企图隐蔽发展 被360独