android與javascript實現相互調用

今天做了一個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");
 }
      
 
}
 
 
  到這裏就介紹完了, 希望對大家有點幫助!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章