Выполните следующие действия:
Настройка WebView
Сначала добавьте JavaScriptInterface в webView следующим образом.Здесь позже «Android» будет использоваться для вызова функций в JavaScriptInterface.
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JavaScriptInterface(this), "MyAndroid");
Класс JavaScriptInterface:
public class JavaScriptInterface {
Context mContext;
JavaScriptInterface(Context c) {
mContext = c;
}
}
HTML-файл:
<html>
<head>
<script type="text/javascript">
function getValue()
{
var x=document.getElementById("content").innerHTML;
// alert(x);
MyAndroid.receiveValueFromJs(x);
}
</script>
</head>
<body>
<div id="content">
This is html content <hr/>
Other contents;
<input type="button" onclick="getValue()" value="Get Content" />
</div>
</body>
</html>
Вызов функции сценария Java
//this calls javascript function
webView.loadUrl("javascript:getValue()");
Добавление функции обратного вызова в JavaScriptInterface для MyAndroid.receiveValueFromJs (val):
public void receiveValueFromJs(String str) {
Toast.makeText(mContext, "Received Value from JS: " + str,Toast.LENGTH_SHORT).show();
}
Здесь вы вернули HTML в переменной str.
Вы можете посмотреть мой блог: http://ganeshtiwaridotcomdotnp.blogspot.com/2011/10/calling-javascript-function-from.html для получения подробной информации.
Я нашел другое решение: Возможно липолучить код HTML из WebView