日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android webview 真正实现---保存整个网页源码

發布時間:2023/12/16 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 真正实现---保存整个网页源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。