我如何使用 android 中的 javascript 将 Edittext 值放入 webview 中的文本字段

How i can put Edittext value into textfield in webview using javascript in android

我想将用户在 Edittext 中输入的值放入通过 Webview 打开的网站的文本字段中

基本上我想做的是

-两个editText(用户和密码) 将值发送到 webview 文本字段,然后自动点击登录

这是覆盖 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();" +
                "})()");

所以为了java脚本读取值,它需要声明为var而不是String

在 chrome 控制台上测试

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

有效,但它是 java 脚本而不是 java,所以 var 将不起作用,如果我找到将字符串转换为 var 的解决方法,我无法将 edittext 值放入测试变量中

谢谢

在你的 onPageFinished 中试试这个(这只是电子邮件字段的例子):

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

myWebView.loadUrl("javascript: (function(){document.getElementById('m_login_email').value ='" + test + "';})();");