admin管理员组文章数量:1022804
I know this question has been asked many times and I have checked all the solutions and researched everything. However, this is simply not working for me.
I don't know what I am doing wrong. Can someone please help me out?
I am loading a local html file in my WebView
and then calling the JavaScript function:
wv.loadUrl("file:///android_asset/sample.html");
wv.getSettings().setJavaScriptEnabled(true);
JavascriptInterface javasriptInterface = new JavascriptInterface(MyActivity.this);
wv.addJavascriptInterface(javasriptInterface, "MyInterface");
wv.loadUrl("javascript:loadpath()");
The HTML file is:
<html>
<head>
</head>
<body>
<script type="text/javascript">
function callDoSomething() {
// Do something
}
function loadpath() {
// Is not called no matter whatever operation I do here. Just printing a string, setting variable, android callback anything.
document.write("Hi");
document.getElementById('img').src = "path.png";
}
</script>
<form name="myForm" action="FORM">
<img src="" alt="Autofill" /><br>
<input type="button" value="Submit" onClick="callDoSomething()" />
</form>
</body>
</html>
I know this question has been asked many times and I have checked all the solutions and researched everything. However, this is simply not working for me.
I don't know what I am doing wrong. Can someone please help me out?
I am loading a local html file in my WebView
and then calling the JavaScript function:
wv.loadUrl("file:///android_asset/sample.html");
wv.getSettings().setJavaScriptEnabled(true);
JavascriptInterface javasriptInterface = new JavascriptInterface(MyActivity.this);
wv.addJavascriptInterface(javasriptInterface, "MyInterface");
wv.loadUrl("javascript:loadpath()");
The HTML file is:
<html>
<head>
</head>
<body>
<script type="text/javascript">
function callDoSomething() {
// Do something
}
function loadpath() {
// Is not called no matter whatever operation I do here. Just printing a string, setting variable, android callback anything.
document.write("Hi");
document.getElementById('img').src = "path.png";
}
</script>
<form name="myForm" action="FORM">
<img src="" alt="Autofill" /><br>
<input type="button" value="Submit" onClick="callDoSomething()" />
</form>
</body>
</html>
Share
Improve this question
edited Mar 7, 2013 at 21:09
user1521536
asked Mar 7, 2013 at 20:52
RachitRachit
7,0313 gold badges18 silver badges9 bronze badges
1 Answer
Reset to default 6loadUrl()
is asynchronous. You are calling your second loadUrl()
way too soon. You need to wait until your page is loaded, perhaps by using a WebViewClient
and watching for onPageFinished()
.
I know this question has been asked many times and I have checked all the solutions and researched everything. However, this is simply not working for me.
I don't know what I am doing wrong. Can someone please help me out?
I am loading a local html file in my WebView
and then calling the JavaScript function:
wv.loadUrl("file:///android_asset/sample.html");
wv.getSettings().setJavaScriptEnabled(true);
JavascriptInterface javasriptInterface = new JavascriptInterface(MyActivity.this);
wv.addJavascriptInterface(javasriptInterface, "MyInterface");
wv.loadUrl("javascript:loadpath()");
The HTML file is:
<html>
<head>
</head>
<body>
<script type="text/javascript">
function callDoSomething() {
// Do something
}
function loadpath() {
// Is not called no matter whatever operation I do here. Just printing a string, setting variable, android callback anything.
document.write("Hi");
document.getElementById('img').src = "path.png";
}
</script>
<form name="myForm" action="FORM">
<img src="" alt="Autofill" /><br>
<input type="button" value="Submit" onClick="callDoSomething()" />
</form>
</body>
</html>
I know this question has been asked many times and I have checked all the solutions and researched everything. However, this is simply not working for me.
I don't know what I am doing wrong. Can someone please help me out?
I am loading a local html file in my WebView
and then calling the JavaScript function:
wv.loadUrl("file:///android_asset/sample.html");
wv.getSettings().setJavaScriptEnabled(true);
JavascriptInterface javasriptInterface = new JavascriptInterface(MyActivity.this);
wv.addJavascriptInterface(javasriptInterface, "MyInterface");
wv.loadUrl("javascript:loadpath()");
The HTML file is:
<html>
<head>
</head>
<body>
<script type="text/javascript">
function callDoSomething() {
// Do something
}
function loadpath() {
// Is not called no matter whatever operation I do here. Just printing a string, setting variable, android callback anything.
document.write("Hi");
document.getElementById('img').src = "path.png";
}
</script>
<form name="myForm" action="FORM">
<img src="" alt="Autofill" /><br>
<input type="button" value="Submit" onClick="callDoSomething()" />
</form>
</body>
</html>
Share
Improve this question
edited Mar 7, 2013 at 21:09
user1521536
asked Mar 7, 2013 at 20:52
RachitRachit
7,0313 gold badges18 silver badges9 bronze badges
1 Answer
Reset to default 6loadUrl()
is asynchronous. You are calling your second loadUrl()
way too soon. You need to wait until your page is loaded, perhaps by using a WebViewClient
and watching for onPageFinished()
.
本文标签: androidCalling JavaScript function in WebViewStack Overflow
版权声明:本文标题:android - Calling JavaScript function in WebView - Stack Overflow 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/questions/1745527677a2154601.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论