Skip to content Skip to sidebar Skip to footer

Get Javascript Variable In Webview In Android

I am working on an e-learning project using SCROM APIs, but now I got stuck at one point: how to get server-side JavaScript value in my core Android activity IN WEBVIEW from scrom

Solution 1:

You'll want to add a javascript interface:

mWebView.addJavascriptInterface(newMyJavaScriptInterface(getApplicationContent(), "JSInterface");

Add a method in your interface you want to call and ensure you have the @JavascriptInterface annotation so Android makes it callable:

@JavascriptInterfacepublicvoidshowHTML(String html)  
{  
   newAlertDialog.Builder(myApp)  
        .setTitle("HTML")  
        .setMessage(html)  
        .setPositiveButton(android.R.string.ok, null)  
    .setCancelable(false)  
    .create()  
    .show(); 
} 

Then follow the approach you are doing at the moment of calling a method in javascript:

webView.loadUrl("javascript:Android.getbookmark(BOOKMARKED_PAGE);");

And the javascript method would look something like:

window.Android.getbookmark = function(variable) {
    var returnValue = getSomeValue(variable);

    if(!window.JSInterface) {
        console.error('window.JSInterface not defined - Did you inject the javascript interface in the native app?');
    }

    window.JSInterface.showHTML(returnValue);
};

Notice the reason we have window.JSInterface is because we added it with that name in:

mWebView.addJavascriptInterface(newMyJavaScriptInterface(getApplicationContent(), "JSInterface");

NOTE: In KitKat it is more efficient to use evaluateJavascript() than loadUrl, simplest form shown below, allow you can pass in a callback to get a return value (Demo in the sample code)

webView.evaluateJavascript("Android.getbookmark(BOOKMARKED_PAGE);", null);

There is a full JS Interface sample here which includes the new API's in KitKat: https://github.com/GoogleChrome/chromium-webview-samples

Solution 2:

you can use javascript bridge for your requirement you can find the source , this too

Post a Comment for "Get Javascript Variable In Webview In Android"