Android: Calling javascript from WebView



我们正在为Android编写一个应用程序。这是一个包含Html5页面的WebView。我们使用loadUrl() webview的方法,以便将一些本地操作系统变量推送到html中,例如:

webview.loadUrl("javascript:myJavascriptFunc('" + myAndroidOSVar + "');");

它工作得很好。但是,如果我们在loadUrl()被调用时从页面输入输入,我们失去了输入字段的焦点,即使javascript函数调用只是改变了缓存上的标志。

你知道从WebView而不是loadUrl()调用Javascript函数的其他方法吗?

这是最接近你可以得到避免这个问题:WebView隐藏软键盘在loadUrl()期间,这意味着键盘不能保持打开,而调用javascript

基本上你是通过在本地端排队命令来避免loadUrl调用,并在一段时间内让JS桥接器获得命令并使用JS eval()或其他东西执行。

我不确定它将如何响应,如果你在webview中有多个字段,但我想出了一个变通办法,以保持键盘显示:https://stackoverflow.com/a/18776064/513038。也许值得一试。

是的,有一种方法是通过在WebView中添加JavaScriptInterface,参考本教程了解更多的解释和细节

最新更新