我们正在为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
,参考本教程了解更多的解释和细节