Depending on your use case, there are different ways of accomplishing this. The difficulty lies in that you want to do things in the onload method.
If it is possible to pass in the string after the page is loaded, you could use
String jsString = "javascript:addData('" + theString + "');");
webView.loadUrl(jsString);
if you really need the data accessible on the onload method of the page, you could modify the url called to to include query data if possible. Something like:
String urlWithData = yourUrl + "?data=" + theString;
webView.loadUrl(urlWithData);
and then use standard javascript to parse window.location.search to get the data.
Finally, if you can't modify the URL for some reason, you can use a callback object to let the javascript get the value:
private class StringGetter {
public String getString() {
return "some string";
}
}
and then when config your webView with this callback before loading the url:
webView.addJavascriptInterface(new StringGetter(), "stringGetter");
and in the onload method of the page you could use:
var theString = stringGetter.getString();
Hope this helps!
Regards:@albin