【问题标题】:How can I autofill a websites fields/forms in a WebView in Android Studio?如何在 Android Studio 的 WebView 中自动填充网站字段/表单?
【发布时间】:2016-12-11 15:45:43
【问题描述】:

我想自动填充例如 Facebook 的登录字段(电子邮件和密码)或 Google 的搜索字段。我遇到过很多关于自动填充的问题,包括this

这是我目前的代码,它在 WebView 中打开网站,但没有填写任何内容。对于 getElementById,我检查了 facebook 的电子邮件和密码字段,他们的 ID 是电子邮件并通过。

    webView = (WebView) findViewById(R.id.webView1);
    webView.loadUrl("https://www.facebook.com");
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    webView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }


        public void onPageFinished(WebView view, String url) {
            String user = "udb";
            String pwd = "abcdefg";
            view.loadUrl("javascript:document.getElementById('email').value = '" + user + "';document.getElementById('pass').value='" + pwd + "';");
            System.out.println("AUTOFILL");
        }
    });

它给了我这个错误

I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot set property 'value' of null",来源:(1)

虽然我对 javaScript 了解不多。

【问题讨论】:

    标签: javascript java android android-webview


    【解决方案1】:

    好吧,我仍然无法让 facebook 工作,但我让谷歌登录工作和其他一些网站注册/登录。所以基本上你需要检查网站的元素(通过在桌面上使用谷歌浏览器)然后获取元素 ID;

    这是填写表格/字段的代码:

        webView.loadUrl("javascript:(function() { document.getElementById('last_name').value = '" + lName + "'; ;})()");
    

    这是点击按钮的代码:

        webView.loadUrl("javascript:(function() { var z = document.getElementById('signInButton').click(); })()");
    

    哦,我用我的手机来做这个,因为模拟器什么也没做。

    编辑:实际上,我通过检查 mobile.facebook.com 网站让 facebook 有点工作,但没有电子邮件 ID,只有密码和登录按钮以及其他一些元素。

    【讨论】:

    • 您知道如何在 Google 的 sign up form 中自动填充月份。我无法用你的方法改变它。
    猜你喜欢
    • 2011-05-19
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多