在 Android 版 Chrome 中浏览时,如果 Lastpass 将 URL 识别为与您关联的登录详细信息,则会弹出建议。
它如何知道 Chrome 正在查看哪个 URL?我知道 Lastpass 使用Accessibility Services,但我想知道它如何从 Chrome 查询当前 URL。
PS。显然它只适用于 Chrome(例如它不会在 Opera 中弹出),所以它可能是 Chrome 特有的。
在 Android 版 Chrome 中浏览时,如果 Lastpass 将 URL 识别为与您关联的登录详细信息,则会弹出建议。
它如何知道 Chrome 正在查看哪个 URL?我知道 Lastpass 使用Accessibility Services,但我想知道它如何从 Chrome 查询当前 URL。
PS。显然它只适用于 Chrome(例如它不会在 Opera 中弹出),所以它可能是 Chrome 特有的。
Android 上的 LastPass 要求使用canRetrieveWindowContent
true 的 Accessibility 权限。这使它可以遍历当前视图层次结构,并将视图作为 AccessibilityNodeInfo 对象访问。
可访问性 API 允许您通过视图上显示的文本搜索节点,并为您提供每个此类视图的 java 类名称。AccessibilityNodeInfo#findAccessibilityNodeInfosByText
该功能在 Opera 上不起作用可能是因为开发人员从未为它处理过视图层次结构遍历逻辑。
查看https://developer.android.com/guide/topics/ui/accessibility/services.html
我一般使用 javascript,除了 Andoid 功能,并且通过一些黑客攻击,可以获得对所有打开窗口的引用(例如获取它们的 URL)。请参阅2009 年的这个答案。