Выполнить JavaScript в Chrome из AccessibilityService

Я хочу написать AccessibilityService который должен помочь пользователю заполнить формы. Я видел возможность вызывать код Javascript через WebView.loadUrl(), Но так как я просто AccessibilityNodeInfo я только вижу, что WebView на экране.

После некоторого исследования я увидел, что TalkBackService может внедрить Javascript, и в другом посте ( Альтернативный способ связи между WebView и нативным) я увидел, что это возможно, если у меня есть ссылка на WebView-объект.

Есть ли способ выполнить JavaScript через такой Message или намерение вещания в Web-браузерах chromes?

Было бы здорово, если бы кто-то мог мне помочь! Большое спасибо!

1 ответ

Chrome не использует WebView, Chrome использует свой собственный движок рендеринга. В то время как часть кода в конечном итоге становится доступной для WebView (как и два, в конечном итоге компилируются из одного и того же исходного кода), на этом сходство заканчивается.

Я не думаю, что есть способ внедрить JavaScript в Chrome через Intent - это было бы довольно большой дырой в безопасности (в противном случае кто-то мог бы внедрить JavaScript "отправь мне все свои деньги" на страницу своего банка).

Доступность не является моей областью компетенции, поэтому я могу быть здесь полностью, но я полагаю, что более новые версии Chrome предоставляют структуру веб-содержимого слою доступности, и поэтому вы сможете выполнять свои действия без какого-либо пользовательского JavaScript. Я думаю, что вы можете проверить это с помощью uiautomatorviewer: для меня инструмент показывает html-формы, когда я получаю дамп пользовательского интерфейса Chrome. Разве это не так для вас?

Другие вопросы по тегам