我的Android应用中有一个WebView,它有一个输入元素供用户输入文本。当用户选择输入元素时,自动显示android键盘并可用于输入文本。
我想使用自己的输入法。有没有办法拦截WebView内部的输入元素选择,并使用我的Android应用程序将文本注入该输入?
我需要一种方法来了解WebView中的输入元素何时变焦/去焦点并且能够传递字符串以显示到该元素中。
答案 0 :(得分:0)
要在webview中进行DOM操作,您需要在webview中执行JavaScript。所以要注射和删除您的内容,您需要附上onblur& onfocus处理程序到输入窗口小部件,并通过Javascript控制内容的注入。
将本机代码中的内容注入JS需要using JavaScript in the web view - 该链接描述了如何将Javascript绑定到Android代码。
要停止显示软键盘,看起来在活动上设置android:windowSoftInputMode
就像你需要的那样。
如果您希望用户能够在Activity中的其他位置使用软键盘,则需要回调Java代码以使用setSoftInputMode以编程方式切换该属性,以便在需要时启用键盘。 (我想在输入获得焦点时试图隐藏键盘会导致键盘出现,然后迅速消失。)