Как заполнить значение при вводе HTML идентификатором внутри WebView

#android

#Android

Вопрос:

У меня есть HTML-страница внутри моего WebView с вводом, ввод имеет id = «inName«. Как заполнить этот ввод из activity некоторой строкой?

Ответ №1:

Вы могли бы попробовать следующее:

 mWebView.loadUrl("javascript: document.forms['myform_id'].value ='"   newValue   "'");
  

С наилучшими пожеланиями,
Тим

Комментарии:

1. Я бы использовал ‘document.getElementById(«inName»)’, чтобы получить элемент, и вам нужно будет экранировать одинарные кавычки в newValue.

2. вы абсолютно правы — если вы хотите задать строку, вам нужно сказать .value='» newValue «‘)»);

3. @Kevin Galligan не могли бы вы рассказать, пожалуйста, как использовать этот код? просто добавьте после этого код, по которому я попадаю на сайт? потому что в моем случае этот код не работает = (

4. Что-то вроде следующего. Способ ‘forms’, вероятно, был бы хорош, но я предпочитаю прямую ссылку на идентификатор. Кроме того, здесь я избегаю одинарных кавычек. mWebView.loadUrl(«javascript:document.getElementById(‘inName’).value ='» Новое значение.заменить(«‘», «‘») «‘)»);

Ответ №2:

Другой способ — использовать JavascriptInterface. Например:

  class JsObject {
    @JavascriptInterface
    public String toString() { return "injectedObject"; }
 }
 webView.addJavascriptInterface(new JsObject(), "injectedObject");
 webView.loadData("", "text/html", null);
 webView.loadUrl("javascript:alert(injectedObject.toString())");
  

Комментарии:

1. Предоставление образца всегда лучше, чем публикация какой-либо ссылки, которая, возможно, уже мертва