页面加载后如何触发对 WebView 中文本输入字段的关注?

Posted

技术标签:

【中文标题】页面加载后如何触发对 WebView 中文本输入字段的关注?【英文标题】:How can I trigger focus on a text input field in a WebView after page load? 【发布时间】:2015-03-08 07:15:14 【问题描述】:

我正在尝试在 Nexus Player 上运行的 WebView 中加载 Facebook 登录页面。该设备输出到电视,因此没有触摸屏。

我可以毫无问题地加载登录页面,但用户无法选择电子邮件和密码文本字段来输入他们的凭据。

在 Nexus Player 遥控器上按上/下/左/右会导致网页滚动,但我无法与页面本身的任何内容进行交互。

我尝试过的事情:

WebView.requestFocus() 页面加载后(来自这里:https://***.com/a/3975109/758458) 在页面加载后模拟触摸输入(来自此处:https://***.com/a/7001356/758458) 将鼠标连接到 Nexus Player 上的 USB 端口。这行得通,我能够成功登录,但我不能指望我的应用程序的最终用户也这样做。

【问题讨论】:

【参考方案1】:

解决方案是在onPageFinished() 中的WebView 上执行以下javascript

webView.loadUrl("javascript:document.getElementsByName('email')[0].focus();");

显然,这仅适用于 Facebook 登录屏幕,因为它们有一个名为“电子邮件”的文本字段。

【讨论】:

我知道这是一个老问题,但我必须尝试一下:你还记得/找到你是如何获得对 webView 的引用的吗?我正在使用 Facebook SDK,我只调用 logInWithReadPermissions,我无法访问他们为登录创建的 webView。

以上是关于页面加载后如何触发对 WebView 中文本输入字段的关注?的主要内容,如果未能解决你的问题,请参考以下文章

如何手动触发点击输入框

WebView如何判断页面真正成功加载?求大神帮助

如何监听webview加载完成这个事件

安卓webview加载 h5页面 奔溃bug

表单提交后,WebView 未加载页面

在页面加载时触发/绑定文本框的 jquery 事件