?
先是 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(); @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.contrl_set_water); back = (ImageButton)findViewById(R.id.back); wb = (WebView)findViewById(R.id.wb); //webview wb.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); //800 wb.getSettings().setSupportZoom( true ); //Modify this wb.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);//Add this wb.addJavascriptInterface(new runJavaScript(), "myjs"); ////----自己定义的myjs 在 HTML 中使用 //\\ back.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub wb.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);//不使用缓存
.........
........
....
?