在Android混合開發中,WebView是中間件,承擔着渲染網頁的職責。javascript
WebView的使用教程參見官網和Carson_Ho的這篇博客。java
當須要Android原生與H5之間交互的時候,須要調用WebView的getSettings().setJavaScriptEnabled(true);
以及webView.addJavascriptInterface(Js對象名,Java對象);
android
前者容許Android原生與H5之間的交互,後者將Java對象映射爲JavaScript的對象。web
假設被映射爲JavaScript對象的Java對象長的像這樣:bash
/*
* 做爲addJavascriptInterface()方法的第二個參數,該類將被映射爲JavaScript對象
*/
public class MyJavaScriptObject{
public void toastShort(){
Toast.maskText(context,"吐個司",Toast.LENGTH_SHORT).show();
}
@JavascriptInterface
public void toastLong(){
Toast.maskText(context,"吐個司",Toast.LENGTH_LONG).show();
}
@JavascriptInterface
public void question1(ClassA param){
//use param
}
@JavascriptInterface
public ClassB question2(){
//return object of ClassB
return new ClassB();
}
}
複製代碼
則:app
toastShort()
方法在JavaScript中不可用,由於該方法沒有被@JavascriptInterface
註解標記;也就是說:webapp