是否可以通过辅助功能服务点击放置在Webview内部的特定按钮?例如,某个应用程序A在MainActivity中有一个WebView。启动活动后,Web内容将在Webview中加载。加载的网页包含文本为“Chat”的按钮。我能用辅助功能服务点击这个按钮吗?我知道我可以在Android本机小部件(android.widget.Button,TextView等)上执行单击操作,但我不知道如何在Web视图中显示的按钮上执行单击操作。请帮忙。
是否可以通过辅助功能服务点击放置在Webview内部的特定按钮?例如,某个应用程序A在MainActivity中有一个WebView。启动活动后,Web内容将在Webview中加载。加载的网页包含文本为“Chat”的按钮。我能用辅助功能服务点击这个按钮吗?我知道我可以在Android本机小部件(android.widget.Button,TextView等)上执行单击操作,但我不知道如何在Web视图中显示的按钮上执行单击操作。请帮忙。
这是一个比较复杂的答案。是的,你可以点击视图,但是这取决于网页开发人员如何实现按钮。如果他们像实现触摸按下和抬起监听器那样做了一些愚蠢的事情,而不是onClick监听器,那么它可能会出现问题。建议:使用TalkBack。如果它不能与TalkBack配合使用,则无法完成操作。如果可以,以下代码应适用于您:
AccessibilityNodeInfo info = ...;
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
注:有传言称Android正在实现从辅助功能服务中伪造真实硬件事件的能力。到目前为止,我只看到这在Android的演示中被用于系统应用程序(具有提升的权限)。请注意寻找需要完善此功能的API,它们可能确实隐藏在某个地方,但我还没有看到它们公开。