5

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..?

2 Answers 2

5

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.

Sign up to request clarification or add additional context in comments.

2 Comments

@ZeroflagL..Could you please eleborate how should i implement it..?
here is good example.
0

I am not very sure but probably you need to put file:///android_asset/www/index.html on a webserver and then retrieve it. By default browsers don't let JS load from JS originating from Filesystems.

1 Comment

@gashu...It is not so..File is getting loaded and internal javascript functions are working fine. just a call from activity to js is throwing an exception..

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.