Могу ли я вставлять Javascript-код в пользовательские вкладки Chrome

В моем приложении в настоящее время я использую веб-представление для отображения некоторого содержимого. Затем я использую инъекцию Javascript, чтобы быстро заполнить форму для пользователя.

Единственная проблема заключается в том, что веб-просмотры невероятно медленные по сравнению с пользовательскими вкладками Chrome. Можно ли вставить код Javascript в эти пользовательские вкладки?

Например, вот код, который я сейчас использую:

myWebView.loadUrl("javascript:document.getElementById('join_first_name').value='" + name + "';void(0); ");

Ответ 1

Нет; это будет критической дырой в безопасности.

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

Ответ 2

Chrome запрещает вам делать все это. Если бы это было разрешено, то это было бы большой проблемой безопасности, так как вы можете изменить страницу в приложении.

Предположим, у вас есть приложение, в котором есть вход на Facebook. Вы можете использовать описанный выше метод для кражи информации о пользователе. Но так как инъекция JavaScript не разрешена, мы не можем этого сделать.

С пользовательскими вкладками Chrome у вас нет большого контроля над обслуживаемым контентом. Вероятно, вам следует попробовать другой вариант, например, передать имя в качестве параметра URL, а затем позволить странице прочитать параметр и заполнить форму.

Ответ 3

вам нужно сделать это, используя data:text/html, качестве префикса для вашего скрипта

Попробуйте это на вкладке браузера

data:text/html,<script>alert("hello")</script>

он будет запускать JavaScript и оповещение, а также вы можете распечатать некоторые в html из URL

так что я думаю, вам нужно просто открыть вкладку со скриптом

 String suffix = "data:text/html,"
 String script = "<script>document.getElementById('join_first_name').value='" + name + "';</script>"
 String url = suffix + script
 myWebView.loadUrl(url);

Это поведение браузера в desktop и mobile

Я не пробовал это в WebView.loadUrl и на самом деле все еще, если это сделано WebView.loadUrl это будет дыра в безопасности

Ответ 4

Предполагается, что нет способа внедрить Javascript в веб-браузер Chrome. Если вы можете выполнять запросы Javascript к chrome через некоторые сторонние приложения, тем самым вы можете прочитать все файлы cookie, очистить все сеансы и все, на что способен JavaScript. Что действительно является огромным недостатком безопасности.

Что вы можете сделать, это загрузить свой URL в веб-просмотр и выполнить там JavaScript. Это единственно возможное, о чем я когда-либо слышал. Это тот же метод, который используется для документов EPUB, когда мы загружаем весь контент HTML в веб-просмотр, затем выполняем внешние запросы Javascript в этом представлении, чтобы вы могли изменять атрибуты HTML, CSS.