I have a webview displaying a page from my own server. Is it possible to add a javascript method that would allow my android app to read out a page element from the webview? Som
Ok this is how i did it:
<html>
<head>
<script type="text/javascript">
function onBodyLoad() {
var element = document.getElementById("abc");
window.javascriptAccessor.getYerData(element.innerHTML);
}
</script>
</head>
<body onload="onBodyLoad()">
<div id="abc">data</p>
</body>
</html>
Then my activity:
WebView webview = (WebView)findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new JavascriptAccessor(), "javascriptAccessor");
webview.setWebViewClient(new WebViewClient() {}); // wouldn't work without this!
webview.loadUrl(url);
private class JavascriptAccessor {
@SuppressWarnings("unused")
public void getYerData(String data) {
Log.v(TAG, data);
}
}
Yeah!