页面加载后如何触发对 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 中文本输入字段的关注?的主要内容,如果未能解决你的问题,请参考以下文章