Я хотел бы предварительно получить код HTML веб-страницы, который должен быть загружен в webView
, проанализировать его с помощью регулярного выражения и отобразить только код HTML, который я хочу, в то время как позволяя веб-странице по-прежнему думать, что она загрузила все.Возможно ли получить код HTML из WebView
Есть ли способ сделать это в WebViewClient.onLoadResource()
или аналогичные методы?
EDIT: Я попытался это:
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();
Интерфейс никогда не называется
@pageHTML = client.execute (pageGet, обработчик); Что такое клиент? –
nevermind, Клиент HttpClient = новый DefaultHttpClient(); –
@Aymon Fournier- Как получить только некоторую строку html-исходного кода веб-страницы? если я получу полную страницу источника, у меня может получиться так много времени, и мне не нужно получать всю линию, вы можете мне помочь? thx очень –