Java和JS之间的交互有哪几种

JavaScript011

Java和JS之间的交互有哪几种,第1张

问的问题本身就是错误的,没有所谓的js与java交互,只有浏览器与服务器交互,无论是传统页面跳转还是ajax都是浏览器与服务器交互。js可以被其它浏览器脚本语言替代,java也可以被其它服务器语言替代。作为语言本身,并不与另外语言有所交集。

本质上都是http请求,一个请求分为请求行、请求头、和请求体

完全讲完的话比较多,我就不讲太细,有两种实现方式

1、使用原生的webview  和js交互

2、第二种方式是用第三方框架,这个框架一定要选好,要js   android  ios都能用  不然最后会发现这个能交互那个不能,代码需要些两套

我上个项目用的:'com.gzsll.jsbridge:library:1.0.0'

具体用法可以百度到

可以,只要你是用webview打开的,那么不管事远程还是本地,都可以通过webview与app的本地java代码进行交互。没有任何区别。

1、webview必须设置支持Javascript

mWebview.getSettings().setJavaScriptEnabled(true)

2、加进一个回调的代理类JavaScriptInterface,并给它一个调用的名称:ncp

mWebView.addJavascriptInterface(new JavaScriptInterface(), "ncp")

final class JavaScriptInterface {

public int callOnJs() {

return 1000

}

public void callOnJs2(String mode) {

//TODO

}

}

3、JS页面

<script type="text/javascript">

window.onload = function(){

document.getElementById('btn_1').addEventListener('click', onBtnClick, false)

var _int_value = window.ncp.callOnJs()

alert("get int from java:" + _int_value )

}

function onBtnClick() {

window.ncp.callOnJs2("click")

}

</script>

接下来就可以调用js方法了,

1、Java调用js方法

mWebView.loadUrl("javascript:onSaveCallback()")

2、JS访问java方法

window.ncp.callOnJs2("click")