我想在android中调用Web页面中的JS与页面交互,HTML代码如下
<html>
<script language="javascript">
function wave() {
alert("1");
document.getElementById("droid").src="\testdemo\icon2.png";
alert("2");
}
</script>
<body>
<a onClick="window.demo.clickOnAndroid<img id="droid" src="\testdemo\icon.png"/><br>Click me!</a>
</body>
</html>
android中JAVA代码如下:
private WebView mWebView;
private Handler mHandler=new Handler();  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mWebView=(WebView)findViewById(R.id.mWebView);
        
        WebSettings webSettings=mWebView.getSettings();
        webSettings.setSaveFormData(false);
        webSettings.setSavePassword(false);
        webSettings.setJavaScriptEnabled(true);
        webSettings.setSupportZoom(true);
        webSettings.setAllowFileAccess(true);     
        mWebView.setWebChromeClient(new MyWebChromeClient());
        mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");   
        mWebView.loadUrl("http://10.8.8.70:808/mobileweb/demo.html");
    }
    
    final class DemoJavaScriptInterface{
      DemoJavaScriptInterface() {}  
      public void clickOnAndroid(){
      //用handler来更新UI
      mHandler.post(new Runnable(){
     public void run(){
     mWebView.loadUrl("javascript:wave()");
     } 
      });
      }
    }   
    final class MyWebChromeClient extends WebChromeClient{
@Override
public boolean onJsAlert(WebView view, String url, String message,
final JsResult result) {
Log.d(LOG_TAG,message);
Toast.makeText(getApplicationContext(), message,Toast.LENGTH_SHORT).show();
//result.confirm();
return true;
}
    }
页面能够打开,为什么它不执行JS方法呢?在线等,有结果马上结贴,谢谢各位了!