Android(安卓)Webview 获取网页form 提交的数据
16lz
2022-05-28
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); } }}
更多相关文章
- Android(安卓)获取当前语言的方法1
- Android应用程序获取ROOT权限的方法(android中如何通过代码检测
- android 银联支付接入报nullexception异常
- android 获取wifi 信号质量
- android获取mac地址
- 2011.07.12——— android Foreground service
- android intent 传递对象需要序列化实现Parcelable接口
- android 获取网络IP地址
- Android获取网络视频文件缩略图