Is it possible to use JavaScript code in Android? -
in code android app opens web page webview , extracts text html between tags "body" , "/body".
import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.webkit.webview; import android.webkit.webviewclient; import android.widget.button; import android.widget.textview; import android.annotation.suppresslint; import android.app.activity; import android.content.intent; public class mainac extends activity { /** called when activity first created. */ @suppresslint({ "javascriptinterface", "setjavascriptenabled" }) @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); webview webview = (webview) findviewbyid(r.id.web); textview text2 = (textview) findviewbyid(r.id.text); button infobutton = (button) findviewbyid(r.id.b1); infobutton.setonclicklistener(new onclicklistener(){ public void onclick(view view){ // here button click logic, example running activity (page) startactivity(new intent(mainac.this, javainterface.class)); } }); class javasc { private textview t2; public javasc (textview i) { t2 = i; } @suppresswarnings("unused") public void processcontent(string ii) { final string content = ii; t2.post(new runnable() { public void run() { t2.settext(content); } }); } } webview.getsettings().setjavascriptenabled(true); webview.addjavascriptinterface(new javasc(text2), "interface"); webview.setwebviewclient(new webviewclient() { @override public void onpagefinished(webview view, string url) { view.loadurl("javascript:window.interface.processcontent(document.getelementsbytagname('body')[0].innertext);"); } }); webview.loadurl("http://www.nytimes.com/2014/08/03/sports/basketball/pacers-paul-george-has-surgery-after-badly-injuring-leg.html?ref=sports"); } } is possible use javascript functions extracted text in android's textview ?
for example javascript function (or other js function need work text)
function myfunction() { var text = document.body.innertext; var titles =text.match(/^\n(.+?)\n\n/mg); (var = 0; < titles.length; i++) { document.write(titles[i] + "<br />" + "<br />"); } } thanks answers :)
according this article, dalvik vm supports java's scripting features (javax.script). 1 of premier languages supported javax.script stuff is, unsurprisingly, javascript.
so in theory, can use javax.script stuff execute javascript code , results. think (also based on article), have include relevant jar(s) (javax.script isn't in android sdk). fortunately, though, javax.script largely set of interfaces, implemented jars specific scripting languages.
some resources using javax.script run script code:
Comments
Post a Comment