Question

I am calling a simple JS function to set values of some html contents, but its not working Here is the JS function

function SetEdits(name,email,pic,date)
{
document.getElementById("myPic").src=pic;
document.getElementById("fullname").value=name;
document.getElementById("email").value=email;
}

and here is the code from android activity

edit.loadUrl("edit.html");
edit.loadUrl("javascript:SetEdits('"+name+"','"+email+"','"+picture+"','"+date+"')");

its not settings these fileds.. is there any problem with the synax where i am calling this function in native activity?

Was it helpful?

Solution

You're probably ending up evaluating the JavaScript before the "edit.html" page has loaded. Try this:

// I'm assuming the real path is something like file:///android_asset/edit.html
edit.loadUrl("edit.html");

edit.setWebViewClient(new WebViewClient() {
  @Override
  public void onPageFinished(WebView view, String url) {
    if (Uri.parse(url).getPath() == "edit.html") {
      view.loadUrl("javascript:SetEdits('" + name+"','" + email + "','" +
                   picture + "','" + date + "')");
    }
  }

OTHER TIPS

Have you enabled the javascript for the webview ? You have to setup a javascript interface between your app and html.

Here is some details Webapp guid

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top