android与javascript实现相互调用

来源:互联网 发布:ubuntu下安装ipython 编辑:程序博客网 时间:2024/06/03 14:53
今天做了一个android与javascript相互调用的例子程序,现在把代码分享出来,并做一点个人的解释. 由于本人不是做网页的,所以在网页端只是写了一个简单的html按钮,内嵌一个javascript的函数.. 也没有做任何的美化,希望做网站的大哥大姐们看到不要呕吐哦! 呵呵! 好了,下面进入正题。
 
    先介绍一下程序运行的流程,当用户进入界面,首先展示在眼前的是一个html网页,当然这个网页有点粗糙,只有一个按钮.. 嘿嘿! 当用户点击按钮的时候,执行android activity useAndroid()方法,而这个方法的功能有两个,一是跳转android activity,为了让大家感受到android端调用javascript,已将此方法注释掉.. 另一个功能是调用javascript更新html按钮value。。 本例中展示的是第二个功能..
 

1、先看test.html
   
   
  
   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  //随便写了一个标题
<title>javascript确实很强大</title>
    
</head>
   
<body>
   
 <script type="text/javascript">
  
      //这是javascript中的函数,android activity中调用它.. 当调用成功后会将html按钮value改变。
     function javascriptMethod(){
     
      document.getElementById("button_id").value="这是点击之后的按钮,不知道调用到没有呢?";
  }
   </script>
   
    //这是html按钮,id、value大家应该都知道什么意思了.. 这里重点说一下onClick, onClick是为html 
  //按钮添加的点击响应事件,这里如果点击之后,会去调用android activity中的useAndroid()方法.
    //connectionName是相互的借口名称,可以随便写,只要两端一致就可以.
  <input id="button_id" type="button" value="点击调用activity中的方法"
onClick="window.connectionName.useAndroid()"/>
 
</body>
</html>
 
 
2、android activity 中的代码
 
 
 import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class TestJs extends Activity {
 
 //webview控件
        private WebView webview;
 //private Handler Mhandler = new Handler();
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  this.setContentView(R.layout.test_js);
  
  webview = (WebView)this.findViewById(R.id.webview);
                //得到WebSettings
  WebSettings settings = webview.getSettings();
  //设置支持javascript
                settings.setJavaScriptEnabled(true);
                //添加一个javascript接口
  webview.addJavascriptInterface(new Object(){
                         //自定义方法
   public void useAndroid() {
    //跳转activity
    /*Intent mIntent = new Intent(TestJs.this,TestActivity3.class);
    TestJs.this.startActivity(mIntent);*/
                                //调用javascript方法,更新html按钮value
    webview.loadUrl("javascript:javascriptMethod()");
   }
   
  }, "connectionName"); //接口名
               //加载本地的html网页
     webview.loadUrl("file:///android_asset/test.html");
 }
      
 
}
 
 
  到这里就介绍完了, 希望对大家有点帮助!
原创粉丝点击