2014-11-24 54 views
7

我正在开发,需要在其他安装的应用程序和Chrome自动填充登录的应用程序。我能够使用AccessibilityService成功自动填充其他已安装应用程序的登录名,但无法使其在Chrome浏览器上正常工作。我能够识别用户名和密码AccessibilityNodeInfo,但我无法将内容粘贴到其中。自动填充登录使用AccessibilityService的Android

这是我在尝试,我复制的内容填充到剪贴板,然后将内容粘贴到使用AccessibilityNodeInfo.ACTION_PASTE这些用户名和密码字段。此技术适用于其他已安装的应用程序,但无法在Chrome中粘贴。除了这个 - link,我无法在网上找到任何相关的帖子,但是没有明确的解决方案。此外,我也无法在开发者网站上找到任何记录。我应该注入javascript代码来粘贴我的内容吗?如果可以,请给我一个例子吗?我之前使用过WebView做过,但在这种情况下,我没有参考视图。

对此的任何帮助将不胜感激。

+0

我想创建一个自动填充其他应用程序的登录无障碍服务。你能给我提供一些例子的链接吗? – Bunny 2016-05-17 10:38:38

回答

0

您可以运行JavaScript通过执行类似以下内容来实现:

document.getElementById("username").val = "username";

但我怀疑,如果你可以只运行在Chrome应用arbitary JS作为外部应用程序。

0

那么谷歌不允许

“你不能使用AccessibilityService注入的JavaScript”

“有没有计划支持JavaScript扩展或注入的JavaScript的任何其他方法在Chrome或WebView中。“

你可以阅读更多here...

0

您可以使用此方法来完成自动填充:

private void setNodeText(AccessibilityNodeInfo node, String str) { 
     Bundle bundle = new Bundle(); 
     bundle.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, str); 
     node.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, bundle); 
}