webview调用js方法的时候传参数的时候直接拼接上本地参数是不行的
ps:这里只用调用的方法有参数但没有返回值的做例子
假如加载的html的代码如下
String ss =
"<!DOCTYPE html>\n" +
"<html>\n" +
"<head>\n" +
"<title></title>\n" +
"<style>\n" +
"img {display: block;max-width: 100%!important;height: auto !important;margin: 10px auto;}\n" +
"</style>\n" +
"<script type=\"text/javascript\">\n"+
"function changeBgColor(color) {\n" +
" document.body.style.backgroundColor = color;\n" +
"}\n"+
"function changeFontSize(fontSize) {\n" +
"\t document.body.style.fontSize = fontSize + 'px';\n" +
"}\n"+
"</script>\n"+
"</head>\n" +
"<body>" + "这里放点你们网页要加载的内容" +
"</body>\n" +
"</html>";
webView.loadDataWithBaseURL(null, ss, "text/html", "UTF-8", null);
如是调用不带参数的方法,我们直接调用就可以了
webView.loadUrl("javascript:changeFontSize()");
功能需要参数的时候,直接拼接是不生效的如下(x)
String params = "需要的参数";
webView.loadUrl("javascript:changeFontSize("+params+")");
需要像java中类似字符类型用 "包裹一下才能生效的如下(✔️️)
String params = "需要的参数";
webView.loadUrl("javascript:changeFontSize('" + params + "')");
最后,调用js方法之前别忘了启用
webSettings.setJavaScriptEnabled(true);