Webview 내부에있는 특정 버튼을 클릭 (AccessibilityService 사용) 할 수 있습니까? 예 : 일부 응용 프로그램 A는 MainActivity 내부에 웹보기가 있습니다. 활동 시작 후 웹 컨텐츠가 webview에로드됩니다. 로드 된 웹 페이지에는 "채팅"이라는 텍스트가 포함 된 버튼이 있습니다. 접근성 서비스에서이 버튼을 클릭 할 수 있습니까? 나는 안드로이드 네이티브 위젯 (android.widget.Button, TextView 등)에 대한 클릭을 수행 할 수 있지만 웹보기 내에서 웹 페이지에 표시된 버튼을 클릭하는 방법을 모른다. 제발 도와주세요접근성 서비스 및 웹보기?
답변
이것은 복잡한 대답입니다. 예, 뷰를 클릭 할 수 있습니다. 그러나 웹 개발자가 버튼을 구현 한 방법에 따라 다릅니다. 그들이 onClick 청취자 대신에 청취자를 만진 구현 된 터치와 같은 어리석은 짓을 한 경우, 그것은 부러 질 수 있습니다. 제안 : TalkBack을 사용하십시오. TalkBack에서 작동하지 않으면 할 수 없습니다. 만약 그렇다면, 다음 코드는 당신을 위해 일해야합니다
AccessibilityNodeInfo info = ...;
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
(!) 참고을 : 가짜 실제 하드웨어 이벤트에 대한 접근성 서비스의 기능을 구현 안드로이드의 소문이 있었다. 지금까지 필자는 Android의 데모와 승격 된 권한을 가진 시스템 앱에만이 기능을 활용하는 것을 보았습니다. 당신이 이것을 완벽하게하기 위해 필요한 API에 주목해라. 실제로 그들은 어딘가에 숨어 있을지 모르지만, 아직 공개되지는 않았다.
토크백에서 "싱글 탭 클릭"을 활성화하면 링크가 선행 탭에 의해 집중된 후 단일 탭이 웹 페이지에 대해 작동하지 않습니다. 이것은 performAction (CLICK)이 웹 페이지에서 작동하지 않음을 보여줍니다. Double-Tap에서 링크가 작동하지만 더블 탭은 내부적으로 처리되므로 액세스 할 필요가 없습니다. – usman
싱글 - 탭은 실험적이며 아무 것도 측정 기준으로 사용하지 않습니다. – ChrisCM
그렇지만 Single-Tap에서는 performAction (CLICK)을 수행하며 웹 페이지와 키보드를 제외한 다른 모든보기에서도 작동합니다. 적어도 performAction (클릭)은 웹 페이지에서 작동하지 않습니다. ? – usman
당신이 뭔가를 할 수있을 것 같아요?
Button button = (Button)findViewById(R.id.ButtonId);
button.onClick(.....);
내 응용 프로그램에서 나가서 coantain webview 다음 performAction 작동하지 않는 다른 응용 프로그램을 운영하는 경우, 클릭하면 수행 할 아이콘을 클릭하면 내 응용 프로그램이 자체 서비스로 실행되는 커서를 포함합니다. –
AccessibilityService에서! 이 코드가 작동하지 않을 가능성이 0입니다. AccessibilityServices에는 앱보기에 대한 액세스 권한이없고 액세스 가능성에 기반한보기 표현에만 액세스 할 수 있습니다. – ChrisCM
버튼을 클릭 한 후 가져 오는 URL을 재정 의하여이 작업을 수행 할 수 있습니다. 원하는 작업을 수행 할 수 있습니다. –
내 앱은 수행하는 아이콘을 클릭 할 때 자체 서비스로 실행되는 커서를 포함합니다 내가 응용 프로그램을 사용하지 않고 coantain webview를 누른 다음 performAction이 작동하지 않는 다른 응용 프로그램을 작동하는 경우 클릭하십시오. –
@AkashDubey Rohit은 사용자가 화면을 터치하지 않고 클릭하려고한다고 생각합니다. 또한 백엔드 서비스에서. 그는 화면을 건드리지 않고 어떻게 화면 좌표를 사용하는 링크에서 초점을 얻습니까? – usman