Me gustaría obtener preventivamente el código HTML de una página web que se va a cargar en un webView
, analizarlo usando expresiones regulares, y mostrar solo el código HTML que quiero, mientras dejando que la página web todavía piense que ha cargado todo.¿Es posible obtener el código HTML de WebView
¿Hay alguna manera de hacerlo en el WebViewClient.onLoadResource()
o métodos similares?
EDIT: He intentado esto:
class MyJavaScriptInterface
{
@SuppressWarnings("unused")
public void showHTML(String html, Context context)
{
new AlertDialog.Builder(context)
.setTitle("HTML")
.setMessage(html)
.setPositiveButton(android.R.string.ok, null)
.setCancelable(false)
.create();
pageHTML = html;
}
}
@Override
public void customizeWebView(final ServiceCommunicableActivity activity, final WebView webview, final SearchResult mRom) {
mRom.setFileSize(getFileSize(mRom.getURLSuffix()));
webview.getSettings().setJavaScriptEnabled(true);
MyJavaScriptInterface interfaceA = new MyJavaScriptInterface();
webview.addJavascriptInterface(interfaceA, "HTMLOUT");
WebViewClient anchorWebViewClient = new WebViewClient()
{
@Override
public void onPageFinished(WebView view, String url)
{
/* This call inject JavaScript into the page which just finished loading. */
webview.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
Pattern pattern = Pattern.compile("<h2>Winning Sc.+</h2></div>(.+)<br>", Pattern.DOTALL);
Matcher matcher = pattern.matcher(pageHTML);
matcher.find();
La interfaz nunca es llamado
@pageHTML = client.execute (pageGet, handler); ¿Qué es cliente? –
nevermind, HttpClient client = new DefaultHttpClient(); –
@Aymon Fournier- ¿Cómo obtengo solo una línea de código fuente html de la página web? si obtengo una página de fuente completa, puede pasar tanto tiempo y no necesito obtener toda la línea, ¿me pueden ayudar? thx muchísimo –