Android - 将值从应用程序传递到webview页面无效

时间:2014-04-29 19:23:31

标签: java javascript android webview

我只是尝试使用Android开发者页面中的示例,通过javascript将值从我的应用传递到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日志中,我可以看到在webview上按下按钮时调用函数getLogin,getId和getNome,具有正确的值,但我的div“teste”仅保留“Aguarde ...”和按钮本身仍然“紧迫”。

任何想法,请回复。我真的不知道在哪里看了。

1 个答案:

答案 0 :(得分:0)

尝试使用public int getId()而不是Integer。尝试仅调用getLogin和getNome。看看getId是否是问题制定者。如果您将最后一个innerHtml注释掉,那么按钮会出现吗?