zipxu
zipxu
采纳率100%
2018-07-20 07:52

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

5

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • zqbnqsdsmd zqbnqsdsmd 3年前

    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 获取任意网页的输入框输入的数据的内容

    点赞 评论 复制链接分享
  • zipxu zipxu 3年前

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

    点赞 评论 复制链接分享
  • weixin_42428357 桃伊 3年前

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

    点赞 评论 复制链接分享
  • weixin_42558915 weixin_42558915 3年前
    点赞 评论 复制链接分享
  • zqbnqsdsmd zqbnqsdsmd 3年前
    点赞 评论 复制链接分享
  • qq_42708004 Doraemon-0253 3年前

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

    点赞 评论 复制链接分享