相关疑难解决方法(0)

使用Javascript在WebView中填写表单

我正试图从Android中的Webview填充Webforms.我已经在这里找到了这段代码:自动填写webview中的字段

String username = "cristian";
webview.loadUrl("javascript:document.getElementById('username').value = '"+username+"';");
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不明白我要打开我要填写的页面.

setContentView(R.layout.web);
final WebView mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl(url);
String user="u";
String pwd="p";
mWebView.loadUrl("javascript:document.getElementById('username').value = '"+user+"';document.getElementById('password').value='"+pwd+"';");
Run Code Online (Sandbox Code Playgroud)

当我以这种方式尝试时,网站会显示但表单中没有任何值.

在此先感谢您的帮助

javascript android android-webview

14
推荐指数
2
解决办法
2万
查看次数

对于loadUrl上的javascript getElementById,Android WebView始终返回null

我尝试从android客户端应用程序填写webview中的表单.我知道它应该如何工作,但getElementById总是为我返回null.我在不同的网站上试过.

以下是www.google.com的示例.

MyWebView view = new MyWebView(this);
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl("http://www.google.com");
view.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView v, String url) {
        v.loadUrl(url);
        return true;
    }
    @Override
    public void onPageFinished(WebView v, String url) {
        v.loadUrl("javascript:document.getElementById('mib').value = 'aaa';");              
    }
});
setContentView(view);
Run Code Online (Sandbox Code Playgroud)

和MyWebView类(仅供参考).

class MyWebView extends WebView {
    Context context;
    public MyWebView(Context context) {
        super(context);
        this.context = context;
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // do some multi touch stuff
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我总是得到错误:

09-01 04:35:26.453: I/chromium(2962): [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot set …
Run Code Online (Sandbox Code Playgroud)

javascript java android webview

9
推荐指数
2
解决办法
2万
查看次数

如何在 Android Studio 的 WebView 中自动填充网站字段/表单?

我想自动填充例如 Facebook 的登录字段(电子邮件和密码)或 Google 的搜索字段。我已经解决了很多关于自动填充的问题,包括这个

这是我目前的代码,它在 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");
        }
    });
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误

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

javascript java android android-webview

4
推荐指数
1
解决办法
7261
查看次数

标签 统计

android ×3

javascript ×3

android-webview ×2

java ×2

webview ×1