在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對象長的像這樣:app
/* * 做爲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(); } }
則:webapp
toastShort()
方法在JavaScript中不可用,由於該方法沒有被@JavascriptInterface
註解標記;也就是說:ide