Marcos Vasconcelos
Marcos Vasconcelos

Reputation: 18276

Listen to javascript calls of a WebView

I has the following HTML

<div>
    <input type="submit" onClick="anyJSFunction('Test')">
</div>

And I open it on a WebView like:

        web = new WebView(this);

        WebSettings settings = web.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        settings.setSupportMultipleWindows(false);
        settings.setSupportZoom(false);
        settings.setPluginsEnabled(true);
        settings.setDomStorageEnabled(true);

        web.setVerticalScrollBarEnabled(false);
        web.setHorizontalScrollBarEnabled(false);

        web.loadUrl("file:///sdcard/test.html");

Now I want to listen on Java when 'anyJSFunction' is called and also be able to get it arguments.

How can it be done?

Upvotes: 2

Views: 12078

Answers (1)

WiredPrairie
WiredPrairie

Reputation: 59763

There's a decent example in the documentation for WebView. Look for "Binding JavaScript code to Android code."

You'll build a class as an interface from JavaScript to Java/Android. You create an instance and pass it to the WebView. Then the JavaScript code can reference the class instance by name.

Upvotes: 11

Related Questions