2012-10-16 81 views
4

我正在构建一个简单的应用程序,将声音效果添加到其他游戏应用程序,并且该游戏运行在包含WebView的混合应用程序中。我可以通过android的辅助功能获取WebView的内容吗?

我想让WebView的内容知道游戏的上下文,但即使使用辅助功能它也不可能。

我使用杰利贝恩,所以启用Enhanced Android Accessibility选项跑对讲测试,但它不能只读的WebView的内容,而且崩溃的游戏程序。

我认为,如果我可以注入输出完整的html源代码到可访问性服务的javascript,很容易察觉上下文。我听说Enhanced Android Accessibility选项做类似的工作。

我的问题是,是否有可能获得无障碍功能的WebView内容?

具体而言,我可以注入一个简单的JavaScript,提供WebView内容的来源?

非常感谢您的阅读。

+0

您是否尝试使用myWebview.loadUrl('javascript:myfunction')调用javascript函数; ?并且在你的函数中,只显示类似$('body')的内容。getHTML() – JuSchz

+0

@julesanchez抱歉,迟到了,谢谢你的回复。但我的意思是访问具有辅助功能的其他应用程序:也就是说,我无法修改目标应用程序的代码。 – vehumet

+1

无法使用AccessibilityService访问在另一个应用程序中运行的WebView的源代码。您需要修改目标游戏应用程序。 – alanv

回答

1

如果要访问api级别18以上的webview,请使用android:canRequestEnhancedWebAccessibility。为Web启用无障碍服务后,您可以将javascript注入到webview中,并可以访问webview内容。

+0

嘿,你知道如何将JS注入到webview中以访问任何第三方应用程序中的内容,如对讲吗? – KunalK

+0

将JS注入到webview中仅当我们想要阅读的webview中有内容时才有用。其他小部件的内容可以通过无障碍的Android API访问,而无需注入JS。您还可以检查TalkBackService来源。 https://code.google.com/p/eyes-free/source/browse/trunk/accessibilityServices/talkback/src/com/google/android/marvin/talkback/TalkBackService.java?r=798 – vsvankhede