2014-11-24 56 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); 
}