js調用android的版本兼容問題

1,在android API Level 17及以上的版本中,就會出現js調用不了android的代碼,這是版本兼容的問題,須要在調用的方法上面加一個註解:@JavascriptInterface,這個註解須要導入一個包:import android.webkit.JavascriptInterface;

下面是代碼: html

@Override
	public void onCreate(Bundle savedInstanceState) {
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		super.onCreate(savedInstanceState);
		this.loadUrl("file:///android_asset/www/index.html");
		
		//給js設置調用的方法
		this.appView.addJavascriptInterface(new JavaScripdtObject(), "android");
		
	}
	/**
	 * 供js調用的對象方法
	 * 
	 * @author YUJIAN
	 * 
	 */
	public class JavaScripdtObject {

		@JavascriptInterface//加入這個註解
		public void runAndroidMethod(String str) {
			Toast.makeText(MainActivity.this, "被js調用"+str, Toast.LENGTH_SHORT)
					.show();
		}
	}
//js代碼

function getNode4()
{
	var str = "javascrip木德";
	
	//調用android代碼
	window.android.runAndroidMethod(str);
	
}
</script>

<input type="button" value="獲取頁面中的節點" onclick="getNode4()" />
相關文章
相關標籤/搜索