我正试图从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)
当我以这种方式尝试时,网站会显示但表单中没有任何值.
在此先感谢您的帮助
我尝试从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) 我想自动填充例如 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", …