android中webView中对HTML的一些操作【更新代码】
16lz
2021-01-24
可通过JS脚本得到HTML的源文件。然后通过正则表达式或是Jsoup类库,分析标签
package com.cchen.webinfo;import java.util.Arrays;import java.util.HashMap;import android.app.Activity;import android.content.ContentValues;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.webkit.ConsoleMessage;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;public class WebViewInfoSearcherActivity extends Activity{ private WebView webView;private WebSettings settings;private String abird_url;/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); abird_url = this.getString(R.string.abird_url); initWeb(); }private void initWeb() {webView = (WebView) this.findViewById(R.id.webView);settings = webView.getSettings();settings.setLoadsImagesAutomatically(true);settings.setJavaScriptEnabled(true);webView.addJavascriptInterface(new JSinterface(), "JS");//JS,js`s namewebView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if(url.startsWith("mms")){Log.d("url", url);Uri uri = Uri.parse(url);Intent intent = new Intent(Intent.ACTION_VIEW,uri);intent.addCategory(Intent.CATEGORY_BROWSABLE);intent.addCategory(Intent.CATEGORY_DEFAULT);WebViewInfoSearcherActivity.this.startActivity(intent);}return true;}@Overridepublic void onPageFinished(WebView view, String url) {view.loadUrl("javascript:window.JS.getHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');"); super.onPageFinished(view, url);}});webView.setWebChromeClient(new WebChromeClient(){@Overridepublic boolean onConsoleMessage(ConsoleMessage consoleMessage) {System.out.println(consoleMessage.message());webView.reload();return super.onConsoleMessage(consoleMessage);}});webView.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) { WebView.HitTestResult hr = ((WebView)v).getHitTestResult(); Log.i("webinfo", "getExtra = "+ hr.getExtra() + "\t\t Type=" + hr.getType()); return false;} });//webView.loadUrl("http://www.hdpfans.com/thread-435-1-1.html");webView.loadUrl(abird_url);}class JSinterface{private InfoSearcher instance;public void getHTML(String html){//System.out.println(html);instance = InfoSearcher.getInstance(html);HashMap<String, String> infoMap = instance.useRegularExpressions();InfoProvider provider = InfoProvider.getInstance(getApplicationContext());ContentValues values = new ContentValues();values.put(InfoProvider.COL_AUTHOR, infoMap.get("author"));provider.insert(InfoProvider.mUri, values);provider.insert(InfoProvider.mUri, values);Log.d("webinfo", Arrays.toString(provider.selectAll().toArray()));provider.delete(Uri.withAppendedPath(InfoProvider.mUri, "3"), null, null);Log.d("webinfo", Arrays.toString(provider.selectAll().toArray()));}}}
FireBug和真实的HTML源代码不一样啊有木有!!!坑爹啊有木有!!!坑的我怎样都提取不到标
签和内容啊有木有!!!
更多相关文章
- 如何用CVS下载SourceForge.net上的源码
- 安卓巴士真诚送上营养丰富的精美Android大餐
- Android(安卓)2.0 源码发布,已经成功移植到 HTC Dream G1
- Android(安卓)ant自动打包脚本:自动替换友盟渠道、版本号、包名
- 基于 Android(安卓)NDK 的学习之旅-----Android.mk 介绍
- 《Google+Android开发入门与实践》书中googleApi学习之iTracks
- Android(安卓)源代码结构
- Android控制台命令am简介
- android LruCache 原理 以及 源代码解析