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