业务需求,原生代码调用H5页的JS方法,并且js方法的参数带有json串。
坑:如果json串是被Uri.encode过,那么调用webview.loadUrl(“js方法”);那么被作为js方法参数的json将会被webview解码decode。而我们的需求是要拿到原始的json串。
一翻度娘排查,发现在4.4以上的系统需要使用evaluateJavascript()方法回调js,这样才能在H5页拿到原始的json串;
if (VERSION.SDK_INT < 19) {
webview.loadUrl(“js方法”);
} else if (VERSION.SDK_INT >= 19) {
webview.evaluateJavascript(“js方法”, new ValueCallback<String>() {
public void onReceiveValue(String value) {
}
});
}