Android中使用webview输入内容。怎么获取输入的内容并处理,再提交

比如webview有个搜索框,输入内容“hello”,点击页面的搜索按钮。
我现在想在获取输入的内容,把"hello"变成"hi",使得返回hi的搜索内容而不是"hello"的

1Android webView 的JS注入,以及调用
2查看网页源代码,获取要抓取的输入框标签的id

public class JavaScriptObject {
Context context;

//sdk17版本以上加上注解
public JavaScriptObject(Context mContxt) {
this.context = mContxt;
}
@JavascriptInterface
public void getPhone(String phone) {
Log.e("JavaScriptObject", phone);
}
}

页面中使用添加:
mWvWeb.addJavascriptInterface(new JavaScriptObject(this), "android");
抓取的时候使用:

mWvWeb.loadUrl("javascript:android.getPhone(document.getElementById("logon_phone").value)");
logon_phone 就是从源代码中获取到的输入框标签的id;

这就是js注入的危险性所在。

以上是Android WebView 获取任意网页的输入框输入的数据的内容

https://www.aliyun.com/jiaocheng/4575.html

涉及js和原生代码相互调用,举个例子,假设你现在已经取到用户名和密码,分别的String name,password
那么我们在html页面写一个js方法,叫做getUserInput
代码我就随便写写
function getUserInput(_name,_password){
alert("name is "+_name+" password is "+_password);
}
我们可以这么在原生传值过去,比如
webview.loadUrl("javascript:getUserInput("+name"+","+password+")");

https://download.csdn.net/

在java文件中找到webview控件,get方法获取到用户的输入内容,通过intent借助android服务机制传递给负责处理数据的地方,之后再通过intent传回来输出

通过javascript获取密码,然后用posturl提交?这种东西最好还是服务器去做,或者不要用webview去实现,或者用原生的edittext去实现