I have a android program (Java + html in a webview). I can call from the javascript to the Java code. But the other way around stopped working (after updating in eclipse).
The JavaScript method is executed on a background (i.e. non-UI) thread. You need to call all Android View related methods on the UI thread. You can achieve what you need with:
mWebView.post(new Runnable() {
@Override
public void run() {
mWebView.loadUrl(...).
}
});
Which will post the task to run on the UI thread.
This can be come over by using the post method. Please go through below code.
m_targetView.post(new Runnable() {
@Override
public void run() {
m_targetView.loadUrl(".....");
}
});
Java version: You must to use Runnable interface and Post to Handler.
webView.post(new Runnable() {
@Override
public void run() {
webView.loadUrl("file:///android_asset/www/index.html");
}
});
Kotlin version:
webView.post(new Runnable {
webView.loadUrl("file:///android_asset/www/index.html")
})
In my case nothing was shown in a WebView, so I prefer another way:
runOnUiThread(new Runnable() {
@Override
public void run() {
final WebView webView = (WebView) findViewById(R.id.map);
webView.loadDataWithBaseURL(...);
}
});