Android-将值从应用程序传递到网页视图页面不起作用

Android - Pass value from app to webview page not working

本文关键字:视图 网页 不起作用 应用程序 Android-      更新时间:2023-09-26

我只是试图通过javascript,使用android开发者页面中的示例将值从我的应用程序传递到web视图。

我的网络视图设置为:

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日志中,我可以看到当在Web视图上按下按钮时,函数getLogin、getId和getNome会被调用,值正确,但我的div"teste"只保留为"Aguade…",按钮本身保持"按下"。

有什么想法请回复。我真的不知道该往哪里看了。

尝试使用public int getId((而不是Integer。请尝试仅调用getLogin和getNome。看看getId是否是问题制造者。如果你评论最后一个innerHtml out,那么按钮会出现吗?