【发布时间】:2015-09-10 04:44:31
【问题描述】:
有很多关于如何在 Web 视图中插入值的帖子,但在语法方面存在很多混淆。这是一个简单的场景 - 有一个用户名和密码列表,当用户选择其中一个用户名时,用户名和密码应插入网页的输入框中。使用的网页是 facebook.com。这是 Web 视图部分的代码。当从列表视图中选择用户名时,此代码将激活 -
WebView wb;
wb = (WebView) findViewById(R.id.webView1);
wb.loadUrl(url);
LoginActivity.this.wb.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView wb, String url) {
wb.loadUrl(url);
//System.out.println("url activated 1");
return true;
}
@Override
public void onPageFinished(WebView wb, String url) {
// TODO Auto-generated method stub
//System.out.println("page loading finished 1");
wb.loadUrl("javascript:document.getElementById('email').value = '"+uname+"';document.getElementById('pass').value='"+pass+"';");
}
});
我仍然不知道在 webview 中输入值的语法是否正确。上面的代码不起作用。请帮忙!
更新的问题 -
链接中有两个名称标签 - “https://m.facebook.com/login/”作为“电子邮件”和“名称”。我想通过单击按钮 b2 将编辑文本框中的电子邮件和密码输入为 ed2 和 ed3 到 Web 视图 (wb)。我使用了以下代码-
b2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
uname = ed2.getText().toString();
pass = ed3.getText().toString();
wb.loadUrl(url);
wb.getSettings().setJavaScriptEnabled(true);
wb.getSettings().setDomStorageEnabled(true);
wb.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView wb, String url) {
wb.loadUrl(url);
return true;
}
});
wb.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView wb, String url) {
// TODO Auto-generated method stub
wb.loadUrl("javascript:(function(){document.getElementByTagName('email').value='" + uname
+ "';document.getElementByTagName('pass').value='" + pass + "';})()");
}
});
}
});
但它显示了两个错误 -
09-15 11:59:43.555:W/BindingManager(26200):无法调用 deniedVisibility() - 从未看到 pid:26200 的连接
09-15 11:59:43.890: I/chromium(26200): [INFO:CONSOLE(1)] "Uncaught TypeError: document.getElementByTagName is not a function",来源:(1)
显然语法有问题。请帮忙!
【问题讨论】:
-
语法仍然不清楚。错误是-“尝试完成输入事件,但输入事件接收器已被释放”
-
@ArpitKumar 检查我的答案
标签: android input android-webview