android > WebView > 获取表单数据
16lz
2021-01-24
先是 HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><script type="text/javascript" src="./jquery_1.4.min.js"></script><script language="javascript"><!-- $(document).ready(function(){ $.extend({getValue:function(inputName){var str = document.getElementById(inputName).value;window.myjs.runOnAndroidJavaScript(str);//调用android的函数}}); });//--></script></head><body style="padding-top:10px"><input type="number" name="" id="time_1" ></body></html>
然后是.java
public class ContrlSetWater extends Activity{private ImageButton back;private WebView wb;private Handler h = new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.contrl_set_water);back = (ImageButton)findViewById(R.id.back);wb = (WebView)findViewById(R.id.wb); //webviewwb.setBackgroundColor(Color.parseColor("#1A1A1A"));wb.getSettings().setJavaScriptEnabled(true); wb.setHorizontalScrollBarEnabled(false);//水平不显示 wb.setVerticalScrollBarEnabled(false); //垂直不显示wb.loadUrl("file:///android_asset/set_water.html"); wb.setInitialScale(95);//800wb.getSettings().setSupportZoom( true ); //Modify thiswb.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);//Add thiswb.addJavascriptInterface(new runJavaScript(), "myjs");////----自己定义的myjs 在 HTML 中使用//\\back.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubwb.loadUrl("javascript:$.getValue('time_1')"); }}); //\\ }final class runJavaScript{//这个Java 对象是绑定在另一个线程里的,public void runOnAndroidJavaScript(final String str){h.post(new Runnable(){public void run() {//这里应该特别注意的 Toast.makeText(ContrlSetWater.this, "out:"+str, Toast.LENGTH_LONG).show();} }); } }}
解决缓存问题 ,在最开始 使用以下代码
wb.clearCache(true);
wb.clearHistory();
wb.clearView();
wb.loadDataWithBaseURL(null, "","text/html", "utf-8",null);
wb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);//不使用缓存
.........
........
....
更多相关文章
- Android:UI更新方法一:Handler+View.invalidate+Thread+Runnable
- java.lang.IllegalArgumentException: connection is null 绑定
- Android(安卓)线程 Handler详解
- 在Android中使用ExecutorService、Executors、Feature
- Android故障积累----(1/N)
- Android工具开发一(清除手机所有app缓存)
- Android(安卓)SQLiteStatement 编译、执行 分析
- Android(安卓)- webview通过js调用Android方法
- Android注解式绑定控件