gpt4 book ai didi

android - 如何在 Android Kitkat (4.4) 中以编程方式向 webView 输入字段提供输入

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:05 29 4
gpt4 key购买 nike

我需要以编程方式向 webview 输入控件提供输入。为此,我使用的是 webView.dispatchKeyEvent(),它在 Android 4.3 版本之前工作正常,但在 4.4 版本(Kitkat - Chromium webView)中不起作用。

我在 logcat 中看到以下语句:

W/UnimplementedWebViewApi(9737): Unimplemented WebView method onKeyMultiple called from: android.webkit.WebView.onKeyMultiple(WebView.java:2179)

我已经尝试过 dispatchKeyEvent()、onKeyDown(),但在 4.4 中,Chromium webView 没有任何效果,请有人告诉我是否可以通过编程方式将输入发送到 webView 字段。

请注意,我正在为任何不知道输入控件名称/ID 的网页(例如:Facebook URL 中的用户名和密码字段)寻找通用解决方案,因此无法使用简单的 Javascript 方法进行加载输入。

最佳答案

您可以使用 Instrumentation为此上课。我已经在 Android 4.4 上对其进行了测试,它可以正常工作。

首先确保 WebView 有焦点,然后调用 sendCharacterSync() 发送单独的按键事件。请注意,这些调用必须从后台线程完成(这是强制性的)。

例如:

final Instrumentation instrumentation = new Instrumentation();

new Thread(new Runnable()
{
@Override
public void run()
{
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_H);
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_I);
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_TAB);
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_T);
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_H);
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_E);
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_R);
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_E);
}
}).start();

唯一的问题是您会得到“打字机”效果(即字母一个接一个出现,而不是一次全部出现)。

关于android - 如何在 Android Kitkat (4.4) 中以编程方式向 webView 输入字段提供输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22757451/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com