Выполнить 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. Разве это не так для вас?