【问题标题】:how to get webview from AccessibilityNodeInfo如何从 AccessibilityNodeInfo 获取 webview
【发布时间】: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


【解决方案1】:

不,因为WebView 在另一个进程中,不是你的。

【讨论】:

  • 那么,有什么方法可以找出该 webview 中加载的 URL 吗??
  • 我不知道。毕竟,可能没有 URL,因为您不需要 URL 来填充WebView
  • WebView 必须包含一个 URL,我需要找到那个 URL。我只能获取节点的文本和内容描述。除了 AccessibilityNodeInfo 之外,还有什么方法可以获取更多访问权限?
  • @ManishAgrawal:“WebView 必须包含 URL”——不,它没有。 “有没有办法获得比 AccessibilityNodeInfo 更多的访问权限?” -- 没有。
【解决方案2】:

没有办法以 WebView 的形式访问 WebView 的所有属性。 AccessibilityNodeInfo 对象与它们所代表的对象完全分开。

但是,由于您可以控制应用程序,因此您可以轻松地在应用程序元素之一的内容描述中提供此信息,然后您的无障碍服务可以轻松访问这些信息。在使用这种有点骇人听闻的解决方案时,请确保不要破坏应用程序的一般可访问性。

注意:我会质疑导致您采用这种思路的设计决策。也许对您正在尝试做的事情进行更一般的描述,可以让我们(Stack Overflow 社区)提出一种更好的方法来完成类似的事情。

【讨论】:

  • 让我解释一下:假设我在第三方应用程序上说“亚马逊”。现在我可以使用可访问性服务和可访问性事件类型访问所有窗口内容:“typeViewFocused”。而且我有一个条件,如果窗口内容包含类名“android.webkit.WebView”,那么我必须找到该 webview 的加载 URL。但是找不到 URL,我可以访问 webview 中的所有内容,但我不需要 WebView 的内容,我只需要那个 webview 用来加载内容的 URL。即使我检查了所有 AccessibilityNodeInfo 对象,但找不到 URL。
  • 所以,澄清一下,你不是在设计两者。您只能控制无障碍服务。这将与您的其他评论相反...根据此描述,没有可靠的方法来获取此信息。
猜你喜欢
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 1970-01-01
  • 2020-05-09
  • 2017-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多