Running Javascript in Android WebView - onPageFinished Loop -


i having bit of trouble getting application correctly run js on page using onpagefinished method.

the code below contained within class i've created extends asynctask fetch , parse json file held elsewhere.

i able fetch json file correctly, parse data , url webview obtained , set. works loads should until attempt run js onpagefinished method.

        //onpostexecute method runs when doinbackground method completed     @suppresslint("setjavascriptenabled")     @override     protected void onpostexecute(boolean aboolean) {         super.onpostexecute(aboolean);          //casting webview findviewbyid doesnt explicity return value type.         webview = (webview) findviewbyid(r.id.webview);          //obtaining websettings of webview         websettings webviewsettings = webview.getsettings();          //setting javascript enabled         webviewsettings.setjavascriptenabled(true);          webview.setwebviewclient(new webviewclient(){             @override             public void onpagefinished(webview view, string url) {                 super.onpagefinished(view, url);                   webview.loadurl("document.getelementbyid('field_133').value = 'test';");                 log.d("onpagefinished", "the page has finished loading");              }         });          //obtaining first item in cellref list array - here access url data train operator.         parsedurl = cellref.get(0).geturl();          //load page parsed online file         webview.loadurl(parsedurl);         log.d("loadurl", "now load parsed url");        } 

all looking @ moment test js can correctly populate textbox once page has loaded value of "test" - however, webview appears stuck in loop of loading & refreshing (seeing repeated logcat prints of "the page has finished loading") when trying run:

webview.loadurl("document.getelementbyid('field_133').value = 'test';");

is correct way of trying inject js webview in android? apologies if there obvious missing, majority of experience lies in swift.

any appreciated.

thanks

try "javascript:" before code. use this, works perfectly:

loadurl("javascript:(function() { document.getelementsbytagname('video')[0].play(); })()"); 

Comments

Popular posts from this blog

tcpdump - How to check if server received packet (acknowledged) -