Jemy杰 2019-07-01
在Android混合开发中,WebView是中间件,承担着渲染网页的职责。
WebView的使用教程参见官网和Carson_Ho的这篇博客。
当需要Android原生与H5之间交互的时候,需要调用WebView的getSettings().setJavaScriptEnabled(true);
以及webView.addJavascriptInterface(Js对象名,Java对象);
前者允许Android原生与H5之间的交互,后者将Java对象映射为JavaScript的对象。
假设被映射为JavaScript对象的Java对象长的像这样:
/* * 作为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(); } }
则:
toastShort()
方法在JavaScript中不可用,因为该方法没有被@JavascriptInterface
注解标记;也就是说: