android webview 获取网页form提交的数据


public class WebActivity extends BaseActivity {    @ViewInject(R.id.web_view)    private WebView mWebView;    @ViewInject(R.id.tv_title_center)    private TextView mTitle;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_faq);        ViewUtils.inject(this);        String title = getIntent().getStringExtra("title");        if (!TextUtils.isEmpty(title)) {            mTitle.setText(title);        } else {            findViewById(R.id.layout_title).setVisibility(View.GONE);        }        mWebView.addJavascriptInterface(new JavaScriptInterface(), "JSInterface");        String url = getIntent().getStringExtra("url");        mWebView.getSettings().setJavaScriptEnabled(true);        mWebView.loadUrl(url);        mWebView.setWebViewClient(new WebViewClient() {            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                view.loadUrl(url);                return true;            }            @Override            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {                handler.proceed();            }            @Override            public void onPageFinished(WebView view, String url) {                super.onPageFinished(view, url);                view.loadUrl("javascript:" + buildInjection());            }        });    }    private String buildInjection() {        StringBuilder sb = new StringBuilder();        sb.append("document.getElementsByTagName('form')[0].onsubmit = function () {");        sb.append("var applyname, pccc_applyname;var str = '';");        sb.append("var inputs = document.getElementsByTagName('input');");        sb.append("for (var i = 0; i < inputs.length; i++) {");        sb.append("if (inputs[i].name.toLowerCase() === 'applyname') {applyname = inputs[i];}");        sb.append("else if (inputs[i].name.toLowerCase() === 'pccc_applyname') {pccc_applyname= inputs[i];}");        sb.append("}");        sb.append("if (pccc_applyname!= null) {str += pccc_applyname.value;}");        sb.append("if (applyname!= null) { str += ' , ' + applyname.value;}");        sb.append("window.JSInterface.processFormInputs(str);");        sb.append("return true;");        sb.append("};");        return sb.toString();    }    @OnClick(R.id.iv_tools_left)    public void onBack(View view) {        finish();    }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) {            mWebView.goBack();// 返回前一个页面            return true;        }        return super.onKeyDown(keyCode, event);    }    class JavaScriptInterface {        @JavascriptInterface        public void processFormInputs(String html) {            LogUtils.e("html-->" + html);        }    }}


更多相关文章

  1. Android(安卓)获取当前语言的方法1
  2. Android应用程序获取ROOT权限的方法(android中如何通过代码检测
  3. android 银联支付接入报nullexception异常
  4. android 获取wifi 信号质量
  5. android获取mac地址
  6. 2011.07.12——— android Foreground service
  7. android intent 传递对象需要序列化实现Parcelable接口
  8. android 获取网络IP地址
  9. Android获取网络视频文件缩略图

随机推荐

  1. Android(安卓)TextView 文字居中
  2. AndroidManifest.xml里面的activity的几
  3. Android(安卓)UEventObserver
  4. Android(安卓)禁止响应屏幕翻转
  5. 沈大海移动开发入门课程android,j2me, 在
  6. [Android(安卓)Studio] Android(安卓)stu
  7. android:configChanges属性
  8. Android(安卓)Battery 分析
  9. Android平台上的计算器APP(付源码)
  10. Android如何发邮件?