android > WebView > 获取表单数据
?
先是 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);//不使用缓存
.........
........
....
?