Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

uncaught ReferenceError,Calling javascript function through android application..?

I am trying to call a javascript function setGameName() through android Webview Activity but it is throwing uncaught ReferenceError:setGameName not defined at :1.

My Source code is as follows:

webView2.setWebChromeClient(new WebChromeClient());
webView2.getSettings().setLightTouchEnabled(true);
webView2.getSettings().setJavaScriptEnabled(true);
webView2.addJavascriptInterface(jsInterface, "AndroidFunction");
webView2.loadUrl("file:///android_asset/www/index.html");
webView2.loadUrl("javascript:setGameName()");

Html code:

    <body>

        <script type="text/javascript">
            function init() {
                console.log("====== I am getting called::===");
                var testVal = document.getElementById('playertextId').value;
                AndroidFunction.proceedFurther(testVal);
            };

            function setGameName() {
                console.log("====== Got the value===");
                document.getElementById('gametextId').value;
            };
        </script>
</body>

It is loading index.html fine but throwing exception at function call, Please provide an appropriate solution..

Update:

i have found the problem the page is not getting loaded at the time of function call..(Since on giving a time delay of 5000ms it is getting called..)!!

But How do I implement it then..?

like image 209
Amritpal Singh Avatar asked Mar 11 '13 09:03

Amritpal Singh


Video Answer


1 Answers

loadUrl is asychronous. That means it returns immediately before the page has loaded. So setGameName does not yet exist when you try to call it.

You can implement a WebClient with an onPageFinished method and call your javascript code there.

like image 107
a better oliver Avatar answered Sep 26 '22 13:09

a better oliver