【发布时间】:2014-04-29 19:23:31
【问题描述】:
我只是想通过 javascript 使用 android 开发者页面中的示例将值从我的应用程序传递到 webview。
我的 webview 设置为:
WebView navegador;
final JavaScriptInterface myJavaScriptInterface = new JavaScriptInterface(this);
navegador.getSettings().setJavaScriptEnabled(true);
navegador.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
navegador.addJavascriptInterface(myJavaScriptInterface, "navegador");
navegador.loadUrl(url);
在它下面我创建了 JavaScriptInterface 类:
public class JavaScriptInterface {
Context mContext;
JavaScriptInterface(Context c) {
System.out.println("FaceWeb -> Navegador.java -> JavascriptInterface");
mContext = c;
}
public String getLogin(){
System.out.println("FaceWeb -> Navegador.java -> getLogin: "+b.getString("login"));
return b.getString("login");
}
public String getNome(){
System.out.println("FaceWeb -> Navegador.java -> getNome: "+ b.getString("nome"));
return b.getString("nome");
}
public Integer getId(){
System.out.println("FaceWeb -> Navegador.java -> getId: "+ b.getInt("id"));
return b.getInt("id");
}
}
这里是我的html:
<body>
<div id="teste">
Parado.
</div>
<input type="button" onclick="leitura()" value="Buscar Valores" />
<script type="text/javascript">
function leitura()
{
document.getElementById("teste").innerHTML = "Aguarde...";
var fonte = navegador.getLogin();
var id = navegador.getId();
var nome = navegador.getNome();
document.getElementById("teste").innerHTML = "Login: "+fonte + "<br>Nome: "+nome+"<br>ID: "+id;
}
</script>
</body>
在 Eclipse 日志中,我可以看到函数 getLogin、getId 和 getNome 在 webview 上按下按钮时被调用,具有正确的值,但我的 div“teste”仅保留“Aguarde ...”和按钮本身仍处于“按下状态”。
任何想法请回复。我真的不知道该去哪里找了。
【问题讨论】:
标签: java javascript android webview