bonjour j'utilise cet exemple http://lexandera.com/2009/01/extracting-html-from-a-webview/ pour obtenir le HTML à partir d'un webview. Mais j'ai besoin de l'utiliser dans ma super classe et je ne sais pas comment le faire. Je peux juste voir le code HTML sur un AlertDialog mais je ne peux pas l'utiliser. Comment puis-je le renvoyer à ma classe principale en tant que String?code html android à partir de webview
final Context myApp = this;
/* An instance of this class will be registered as a JavaScript interface */
class MyJavaScriptInterface
{
@SuppressWarnings("unused")
public void showHTML(String html)
{
new AlertDialog.Builder(myApp)
.setTitle("HTML")
.setMessage(html)
.setPositiveButton(android.R.string.ok, null)
.setCancelable(false)
.create()
.show();
}
}
final WebView browser = (WebView)findViewById(R.id.browser);
/* JavaScript must be enabled if you want it to work, obviously */
browser.getSettings().setJavaScriptEnabled(true);
/* Register a new JavaScript interface called HTMLOUT */
browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
/* WebViewClient must be set BEFORE calling loadUrl! */
browser.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
/* This call inject JavaScript into the page which just finished loading. */
browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
}
});
/* load a web page */
browser.loadUrl("http://lexandera.com/files/jsexamples/gethtml.html");
c'est la même chose que dans l'exemple, en remplaçant AlertDialog par Toast. Je veux juste avoir accès à la chaîne html après webView.loadUrl dans la classe principale qui n'est pas dans la classe JavaScriptInterface.J'ai essayé dans la classe principale: JavaScriptInterface script = new JavaScriptInterface(); script.loadhtml(); //// class JavaScriptInterface {chaîne publique loadhtml() {return html}} mais ne fonctionne pas –