So i know there are other posts addressing the same issue, and I think I\'ve followed them to the letter but alas to no avail. I\'m trying to learn how to get my app to int
I do it by utilizing the onLoadResource in my Webview class.
Html page:
<html>
<head>
function Submit(){
var username = $('#username').val();
var urlNew = 'processing.php';
urlNew = urlNew + '?' + 'username=' + username;
$('#submit').attr('href', urlNew);
return true;
}
</head>
<body>
<form>
<input id="username" name="username" type="text" />
<a href="" id="submit" onclick="return Submit();" ><img src="images/button.png" /></a>
</form>
</body>
</html>
So then in my onLoadResource I listen for that url:
public void onLoadResource(WebView view, String url)
{
if(url.contains("http://domain.com/processing.php")){
//process the url and suck out the data
}
This might not be what you need, but there were reasons I had to do it this way so figured it may help you. Also note that I didn't do form submit, I did <a>
submit, thats because the onLoadResource won't pick up the form submit.
Edit: This might help.
Try enabling javascript on your webview :
mWebview.getSettings().setJavaScriptEnabled(true);
This may not be correct, I will have to double check but it may be due to the reference being lost..
Try making your ClsAccessor
reference a member level one..
public class JSExample extends Activity {
...
ClsAccessor _accessor = new ClsAccessor();
...
public void onCreate(Bundle savedInstanceState) {
...
mWebView.addJavascriptInterface(_accessor, "accessor");
...
Also if you debug line by line does setValue()
ever get called in managed code?
For what it is worth, I have code that is doing as I have described above and the script to managed interface works fine, however I am not in a position currently to test and see if not having a reference to the class also works.