I am creating a WebView with code rather than loading via an XML layout. The webview appears to be created properly, but I am seeing the errors:
W/AwContents( 4564): nativeOnDraw failed; clearing to background color.
I/chromium( 4564): [INFO:CONSOLE(1)] Uncaught ReferenceError: Android is not defined,
...
If I put the WebView in my XML layout, I don't get these errors. Notice that, if the script runs, it will change the onLoadEvent field value from no to yes. That is happening, so evidently the script is running. It is not fetching the user name and password, though, indicating that Android is not defined.
I have also tried executing addView() before webView.loadData(); same errors.
Here's the code that creates the WebView:
@SuppressLint(SetJavaScriptEnabled)
private void onOk ()
{
Log.d (RegTest, onOk);
webView = new WebView (this);
webView.setLayoutParams (new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled (true);
CharSequence cs = readAsset (input_form);
webView.loadData (cs.toString(), text/html, UTF-8);
contentView.addView (webView);
}
And here are snips of input_form, which is the source for the WebView content:
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
...
<script type=text/javascript>
function onLoadValues ()
{
document.getElementById (onLoadEvent).value = yes;
document.getElementById (FullName).value = Android.getFullName();
document.getElementById (EmailAddress).value = Android.getEmailAddr();
}
</script>
</head>
<body onload=onLoadValues()>
<form name=catwebformform52174 method=post ...>
<fieldset>
<div class=pure-control-group>
<label for=onLoadValues>onLoadEvent</label>
<input id=onLoadEvent name=onLoadEvent type=text placeholder=no>
</div>
<div class=pure-control-group>
<label for=FullName>Name</label>
<input id=FullName name=FullName type=text placeholder=Name>
</div>
<div class=pure-control-group>
<label for=EmailAddress>Email Address</label>
<input id=EmailAddress name=EmailAddress type=email placeholder=Email Address>
</div>
</fieldset>
</form>
</body>
</html>