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 Studio学习:中级控件:使用Intent进行页面之间数据传输
  2. android页面切换动画
  3. Android 左右滑动切换页面或Activity的效果实现
  4. webViewJavascriptBridge踩坑【页面刚开始bridge失效一阵】
  5. Android:打开程序的全屏页面
  6. android 通过schema唤起应用指定页面
  7. Android中WebView获取网页中标题 ,内容, 图片的方法

随机推荐

  1. Android带头像的用户注册页面
  2. android监控来电显示
  3. Android开发之常用代码片段
  4. android 2.3 电源管理
  5. android 超简单的下载功能,进度条 异步下
  6. Android(安卓)Studio里面的Build.gradle
  7. Android(安卓)WebView加载H5音视频自动播
  8. Android(安卓): Error inflating class a
  9. Android里的音量调节
  10. Android(安卓)Camera子系统之源代码View