Как я могу поместить значение Edittext в текстовое поле в веб-просмотре, используя JavaScript в Android - PullRequest
1 голос
/ 29 июня 2019

Я хочу поместить значение, которое пользователь ввел в тексте редактирования, в текстовое поле веб-сайта, открываемого через Webview

В основном я пытаюсь сделать

-Два editText (пользователь и пароль) отправьте значения в текстовое поле веб-просмотра, а затем нажмите «Войти» автоматически

это код переопределения метода onPageFinished

   @Override
    public void onPageFinished(WebView view, String url)
    {
        view.loadUrl("javascript:(function() { " +
                "document.getElementById('m_login_email').value ='emailfromAndroidEdittext'; " +
                "})()");

                view.loadUrl("javascript:(function() { " +
                "document.getElementById('m_login_password').value = 'passwordfromAndroidEdittext'; " +
                "})()");
        view.loadUrl("javascript:(function() { " +
                "document.getElementsByClassName('_54k8 _52jh _56bs _56b_ _28lf _56bw _56bu')[0].click();" +
                "})()");

Так как мне изменить emailfromAndroidEdittext и passwordfromAndroidEdittext на значения, которые пользователь ввел в Edittext в приложении?

Что я пытался

   @Override
    public void onPageFinished(WebView view, String url)
    {
    String test="hi";
    view.loadUrl("javascript:(function() { " +
            "document.getElementById('m_login_email').value =test"; " +
            "})()");

                view.loadUrl("javascript:(function() { " +
                "document.getElementById('m_login_password').value = 'passwordfromAndroidEdittext'; " +
                "})()");
        view.loadUrl("javascript:(function() { " +
                "document.getElementsByClassName('_54k8 _52jh _56bs _56b_ _28lf _56bw _56bu')[0].click();" +
                "})()");

Таким образом, чтобы javascript прочитал значения, он должен быть объявлен как var, а не String

проверено на хромированной консоли

var test="hi";
document.getElementById('m_login_email').value =test

Работает, но это javascript, а не java, поэтому var не будет работать, и если я найду обходной путь для строки в var, я не смогу поместить значение edittext в тестовую переменную

Спасибо

1 Ответ

1 голос
/ 29 июня 2019

Попробуйте это в вашем onPageFinished (это пример только для поля электронной почты):

String test="hi";  //Replace here the text from EditText

myWebView.loadUrl("javascript: (function(){document.getElementById('m_login_email').value ='" + test + "';})();");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...