Ответ 1
Нет; это будет критической дырой в безопасности.
Так как пользовательские вкладки используют куки, настройки и администраторы паролей из реального экземпляра Chrome, вы не можете их вообще контролировать.
В моем приложении в настоящее время я использую веб-представление для отображения некоторого содержимого. Затем я использую инъекцию Javascript, чтобы быстро заполнить форму для пользователя.
Единственная проблема заключается в том, что веб-просмотры невероятно медленные по сравнению с пользовательскими вкладками Chrome. Можно ли вставить код Javascript в эти пользовательские вкладки?
Например, вот код, который я сейчас использую:
myWebView.loadUrl("javascript:document.getElementById('join_first_name').value='" + name + "';void(0); ");
Нет; это будет критической дырой в безопасности.
Так как пользовательские вкладки используют куки, настройки и администраторы паролей из реального экземпляра Chrome, вы не можете их вообще контролировать.
Chrome запрещает вам делать все это. Если бы это было разрешено, то это было бы большой проблемой безопасности, так как вы можете изменить страницу в приложении.
Предположим, у вас есть приложение, в котором есть вход на Facebook. Вы можете использовать описанный выше метод для кражи информации о пользователе. Но так как инъекция JavaScript не разрешена, мы не можем этого сделать.
С пользовательскими вкладками Chrome у вас нет большого контроля над обслуживаемым контентом. Вероятно, вам следует попробовать другой вариант, например, передать имя в качестве параметра URL, а затем позволить странице прочитать параметр и заполнить форму.
вам нужно сделать это, используя 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
это будет дыра в безопасности
Предполагается, что нет способа внедрить Javascript
в веб-браузер Chrome. Если вы можете выполнять запросы Javascript к chrome через некоторые сторонние приложения, тем самым вы можете прочитать все файлы cookie, очистить все сеансы и все, на что способен JavaScript. Что действительно является огромным недостатком безопасности.
Что вы можете сделать, это загрузить свой URL
в веб-просмотр и выполнить там JavaScript. Это единственно возможное, о чем я когда-либо слышал. Это тот же метод, который используется для документов EPUB
, когда мы загружаем весь контент HTML в веб-просмотр, затем выполняем внешние запросы Javascript
в этом представлении, чтобы вы могли изменять атрибуты HTML, CSS.