Android与WebView的JS交互
一 JS调用Java方法,一共分为三步:
第一步,把冰箱打开。。。
咳咳
第一步,允许WebView加载JS:
webView.getSettings().setJavaScriptEnabled(true)
第二步,编写JS接口类
其中,注意接口类的方法需要加注解:@JavaScriptInterface且方法必须是public的
第三步,给WebView添加JS接口类
webView.addJavaScriptInterface(obj,name)
二 Java调用JS方法
直接通过WebView的loadUrl()方法
webView.loadUrl("javascript:if(window.remote){window.remote(参数)}");
三 chrome调试WebView
1.打开允许调试的开关
webView.setWebContentsDebuggingEnabled(true);//API>=19
2.chrome运行:chrome://inspect
三:常见错误
1.在JS接口的回调方法中throw Exception ,APP并不会捕获到,而是webView捕获
2.webView端不进行对象存在的判断,所以在非android环境下,window上下文可能会没有本应该有的对象字段。
3.传递的参数类型不一致(对象和数组),所以建议统一传递String类型的值,可以是Json字符串
4.传递空的字符串时本地收到的是undefined字符串,所以web端在字符串值可能为空时要进行判空操作