我想将用户在 Edittext 中输入的值放在通过 Webview 打开的网站的 textField 中
基本上我想做的是
-两个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();" +
"})()");
所以为了 javascript 读取值,它需要声明为 var
而不是 String
在 chrome 控制台上测试
var test="hi";
document.getElementById('m_login_email').value =test
有效,但它是 javascript 而不是 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 + "';})();");
关于javascript - 我如何在 android 中使用 javascript 将 Edittext 值放入 webview 中的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56813700/