一、Android调用js的方法
1、设置webview对js的支持
WebSettings webSettings = webView.getSettings();
// 设置编码
webSettings.setDefaultTextEncodingName("utf-8");
// 设置支持调用JavaScript方法
webSettings.setJavaScriptEnabled(true);
2、在html中添加 evaluateNativeToJS 方法
<!DOCTYPE html>
<html>
<head></head>
<body>
<script type="text/javascript">
/**
* Android调用js的方法
*
* @param json json格式字符串(Android工程师和前端工程师约定的数据格式)
*/
function evaluateNativeToJS(json) {
// 处理数据
}
</script>
</body>
</html>
3、在Android中调用 evaluateNativeToJS 方法
webView.evaluateJavascript("javascript:evaluateNativeToJS('{\"action\": \"login\",\"data\": {}}')", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
// value js方法返回值
}
});
二、js调用Android的方法
1、创建js调用的接口(添加js要调用的方法 evaluateJsToNative)
class JsCallNativeInterface {
/**
* js调用Android的方法
*
* @param json json格式字符串(Android工程师和前端工程师约定的数据格式)
*/
@JavascriptInterface
public void evaluateJsToNative(String json) {
// 处理数据
}
}
2、设置webview对js的支持
WebSettings webSettings = webView.getSettings();
// 设置编码
webSettings.setDefaultTextEncodingName("utf-8");
// 设置支持调用JavaScript方法
webSettings.setJavaScriptEnabled(true);
// 为webView添加js调用的接口(可以添加多个)
webView.addJavascriptInterface(new JsCallNativeInterface(), "callNative");
3、js调用 evaluateJsToNative方法
<!DOCTYPE html>
<html>
<head></head>
<body>
<button type="button" onclick="share()">js调用Android</button>
<script type="text/javascript">
function share() {
// js调用Android的方法
window.callNative.evaluateJsToNative('{\
"action": "share",\
"data": {"targeturl":"https://nact.sxyj.net/miao_share?type=invite"}\
}')
}
</script>
</body>
</html>