java运行在服务器端,在同一个jsp文件中,java先运行,js后运行,java可以生成一段js代码,保证js运行得到相应的结果,因此可以用java定义js变量的方式来传递数据,例如:
1
2
3
4
<script>
var url="<%=url%>"
alert(username)
</script>
上面例子,<%%>中的内容会在服务器端运行,在“”中间输出网址,浏览器就会加载下面的结果:
1
2
3
4
<script>
var url="gif8.cn"
alert(url)
</script>
这部分就是标准的js代码了。
本回答由电脑网络分类达人 吕明推荐
方法:
1、通过webview访问js脚本
2、js脚本再调用webview中的java函数把结果返回
示例代码:
通过本地的webview打开脚本页面。
调用步骤
1、设置webview支持脚本
webSettings.setJavaScriptEnabled(true)2、打开脚本页面
mWebView.loadUrl("file:///android_asset/demo.html")//这里打开该app的asset目录下的demo.html,里面含有wave函数脚本3、调用脚本
mWebView.loadUrl("javascript:wave()")//调用打开页面中的wave函数4、webview中建立js能够访问
mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo")//js可以通过demo访问到DemoJavaScriptInterface 类中的方法。final class DemoJavaScriptInterface {
DemoJavaScriptInterface() {
}
public void clickOnAndroid(String result) {
System.out.prinltn("返回的结果"+result)
}
}
5、js访问webview方法
<script language="javascript">function wave() {
alert("1")
window.demo.clickOnAndroid('结果1')//返回结果,调用java方法
}
</script>