Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> JS與Android互調

JS與Android互調

編輯:關於Android編程

JavaScript與Android程序之間的交互怎樣實現呢?前幾天在項目中遇到了這樣的問題。其實還是多簡單的,只有一個地方需要注意,那就是JavaScript與Android版本兼容性。這裡先來總結下JavaScript調用Android程序和Android程序調用JavaScript的方法。

首先設置WebView的屬性,如果需要該Webview能與JavaScript直接進行交互,必須將其setJavaScriptEnabled設置為true。如下面幾行代碼

webview = (WebView) this.findViewById(R.id.webView1);
WebSettings webSetting = webview.getSettings();
webSetting.setJavaScriptEnabled(true);// 是否支持javaScript

1、JavaScript調用Android程序

JavaScript調用Androd程序需要Android程序中提供一個接口,個人認為在JavaScript調用Android接口的過程,有點類似於回調。具體如下

讓webview加載demo.html網頁,網頁中設置一按鈕,當點擊按鈕的時候就調用Android接口,demo.html如下:

  
	   
	 

	<script type="text/javascript">
	function jsToAndriod() { 
		var msg = 'jsToAndriod';
		javascript:android.getResult(msg);
	}
	
	function androidToJs(){
		var msg = 'androidToJs';
		alert(msg);
	}
	</script>
	  
 
在Android程序中需要有如下的代碼,即定義JavaScript調用的接口:

第一步:先注冊提供給JavaScript調用的接口

webview.addJavascriptInterface(new JavaScriptinterface(), "android");
第二步:定義接口

class JavaScriptinterface{
		@JavascriptInterface
		public void getResult(String str){
			Log.e("","result = " + str);
		}
	}


2、Android調用JavaScript接口

可以看到上面demo.html中有一個接口叫做androidToJs,是的,在JavaScript中就是這樣申明和定義接口的,在android程序中只需要這樣去調用即可:

webview.loadUrl("javascript:androidToJs()");   //調js中的方法  call in UI Thread !
注意是在主線程中調用哦,不然會有異常。


3、JavaScript和Android存在版本兼容性問題

如果夠細心的話,可以看到在定義JavaScript調用Android接口的時候,在Android接口jsToAndroid()上面是有一個注釋@JavascriptInterface,是的,最好加上這一句,不然可能會存在JavaScript調不到Android接口的問題,會報錯說這個接口沒有定義。






  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved