在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