【发布时间】:2015-10-24 12:17:18
【问题描述】:
我正在创建一个需要使用 AccessibilityService 的应用程序。并且获取其他应用程序的窗口内容也没有问题。我已从窗口内容中检测到所有可用的子项,并且该子项显示在 AccessibilityNodeInfo 中。现在我在 AccessibilityNodeInfo 中有一个 webview,我需要获取该 WebView 的 URL,但是没有办法将 AccessibilityNodeInfo 转换为相关的 View。
有什么方法可以从 AccessibilityNodeInfo 获取 webview 吗?
【问题讨论】:
-
你说的是应用和无障碍服务。您是在设计应用程序还是服务?或两者?你想做的事情是不可能的……你说的方式。但是,您要达到的目标背后的意图相当简单,具体取决于您正在处理的等式的哪一边。
-
@ChrisCM :我正在设计两者。我需要使用辅助功能服务来获取另一个应用程序的 WebView URL。我能够检索另一个应用程序窗口的内容,它返回 AccessibilityNodeInfo 对象中的 WebView 类名,这与预期的一样,现在我需要获取该 WebView 的加载 URL。如果有办法从该 AccessibilityNodeInfo 获取加载的 URL,请提供帮助,或者是否有任何方法可以从 AccessibilityNodeInfo 访问该 WebView 的所有属性。
-
没有办法像 WebView 一样访问 WebView 的所有属性。 AccessibilityNodeInfo 对象与它们所代表的对象完全分开。但是,由于您可以控制 WebView,因此您可以轻松地在 WebView 的内容描述中提供此信息,然后您的辅助功能服务可以轻松访问这些信息。这样做时请确保不要破坏 web 视图中对象的可访问性。
标签: android webview talkback accessibilityservice accessibility-api