Jay Joshi
Jay Joshi

Reputation: 31

How to call JavaScript in Android

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    web = (WebView) findViewById(R.id.webview1);



    web.setWebChromeClient(new MyWebChromeClient());

    web.addJavascriptInterface(new DemoJavaScriptInterface(), "temp_1");

    web.loadUrl("file:///android_asset/temp_1.html");

  }   
}

final class DemoJavaScriptInterface {

    private Handler mHandler = new Handler();
    WebView web;
    DemoJavaScriptInterface() {
}

public void clickOnAndroid() {
    mHandler.post(new Runnable() {
        public void run() {
            web.loadUrl("javascript:init();");
        }
    });

   }
}

final class MyWebChromeClient extends WebChromeClient {

    private static final String LOG_TAG = "WebViewDemo";
    @Override

    public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
        Log.e(LOG_TAG, message);
        result.confirm();
        return true;
    }
}

Upvotes: 2

Views: 157

Answers (2)

Jay Joshi
Jay Joshi

Reputation: 31

[2]: Both Elements are coming from html file ,when going to click on "Click It" nothing happens instead of displaying xml data that i want

Upvotes: 0

Nirali
Nirali

Reputation: 13805

Try to write this line

web = (WebView) findViewById(R.id.webview1);
web.setWebChromeClient(new MyWebChromeClient());

web.getSettings().setJavaScriptEnabled(true);

web.addJavascriptInterface(new DemoJavaScriptInterface(), "temp_1");
web.loadUrl("file:///android_asset/temp_1.html");

Upvotes: 1

Related Questions