webview调用java方法
1.允许webview加载js :
webView.getSettings().setJavaScriptEnabled(true);
2.编写js接口类
import android.util.Log;
import android.webkit.JavascriptInterface;
public class TestJavascriptInterface {
@JavascriptInterface
public void testMethod(String value) {
Log.e("JavascriptInterface", "come in testMthod");
}
}
3.给webview添加js接口:
webView.addJavascriptInterface(new TestJavascriptInterface(),"testObj");
android中调用js方法
webView.loadUrl("javascript:if(window.testJSMethod){window.testJSMethod('this is my test content')}")
chrome的调试
1.webView.setWebContentsDebuggingEnabled(true);
2.通过chrome浏览器进行调试,在地址栏输入chrome://inspect/#devices
js交互中常见的错误
1.在Android中声明的JavascriptInterface接口的的方法中throw Exception,本地并不会捕捉到报错信息,网页端会出错。
2.web端不进行对象是否存在的判断
3.传递的参数类型不一致(尤其是数组和对象)
4.字符串类型参数未空时传递undefined