javascript调用java,javascript调用jar

如何把java代码嵌入到javascript中

1.取得脚本解释器的管理器Manager

创新互联专业为企业提供尼泸西网站建设、尼泸西做网站、尼泸西网站设计、尼泸西网站制作等企业网站建设、网页设计与制作、尼泸西企业网站模板建站服务,十余年尼泸西做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

2.从管理器中取得js的解释器实例ScriptEngine

3.取得存储javascript变量的Bindings实例

4.把一个java.io.Reader流及Bindings传递给ScriptEngine的eval方法返回脚本运行结果,如果执行中发生错误,会抛出ScriptException异常。

例:运行javascript脚本的一个java程序

throwsIOException{ScriptEngineManagerscriptManager=newScriptEngineManager;//从管理器中获取js的解释器//定义我们要运行的脚本文件Stringfilename=null;//通过解释器来获得存储javascript变量的Bindings的实例,使它们提供给脚本。Bindingsbindings=js.createBindings;//在map中获取和设置值的方法publicObjectget;//使用我们的name/value对(即javascript变量)Bindingsbindings=newSimpleBindings(defaults);//创建一个变量,用于存放脚本执行的内容ScriptContextcontext=newSimpleScriptContext();//设置那些Bindings在Context中,使它们可读。但这样的变量定义的脚本不要放入我们的Map中context.setBindings(bindings,ScriptContext.GLOBAL_SCOPE);BufferedReaderin=newBufferedReader(newFileReader(filename));Stringline;while((line=in.readLine())!=null){line=line.trim();if(line.length()==0)continue;//跳过空行if(line.charAt(0)==‘#‘)continue;//跳过命令intpos=line.indexOf(":");if(pos==-1){thrownewIllegalArgumentException("syntax:"+line);}Stringname=line.substring(0,pos).trim();Stringvalue=line.substring(pos+1).trim();charfirstchar=value.charAt(0);intlen=value.length();charlastchar=value.charAt(len-1);if(firstchar==‘"‘lastchar==‘"‘){//双引号引用的值为字符串defaults.put(name,value.substring(1,len-1));}elseif(Character.isDigit(firstchar)){//如果开始是一个数字try{doubled=Double.parseDouble(value);defaults.put(name,value);}catch(NumberFormatExceptione){//没有数字,是一个stringdefaults.put(name,value);}}elseif("true".equals(value)){//处理布尔值defaults.put(name,Boolean.TRUE);}elseif("false".equals(value)){defaults.put(name,Boolean.FALSE);}elseif("null".equals(value)){//处理null值defaults.put(name,null);}elseif(firstchar==‘{‘lastchar==‘}‘){//如果值是在一对大括号之内,则执行javascript代码Stringscript=value.substring(1,len-1);Objectresult=engine.eval(script,context);defaults.put(name,result);}else{//其它情况,刚好是一个字符串defaults.put(name,value);}}}//一个简单的类的测试程序publicstaticvoidmain(String[]args)throwsIOException,ScriptException{Configurationdefaults=newConfiguration();defaults.load(args[0]);Set

script 如何 调用 java方法

给你一个dwr框架实现Ajax调用DAO的简单程序。

script type='text/javascript' src='dwr/interface/testDAOVali.js'/script

script type='text/javascript' src='dwr/engine.js'/script

script type="text/javascript"

function abc(b) {

alert(b);

}

function checkRepeat(s) {

var o = getElement(s);

if (o) {

testDAOVali.valiUser(o.value,abc);

}

}

function getElement(name) {

var result = null;

var objs = document.getElementsByName(name);

if (objs) {

var o = objs[0];

result = o;

}

return result;

}

/script

body

input type="text" name="user"

input type="button" onclick="checkRepeat('user')" value="检查是否重复"

/body

/html

如何在JAVASCRIPT调用Android JAVA函数

首先是网页:

%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%  

!DOCTYPE HTML  

html  

head  

meta http-equiv="Content-Type" content="text/html; charset=UTF-8"  

titlejs和android相互调用/title  

head  

script type="text/javascript" language="javascript"  

//调用java方法jsCallJava()  

function showHtmlcallJava() {  

var str = window.android.jsCallJava();  

document.getElementById("info1").value = str;  

}  

//调用java方法jsCallJavaWithParams(String var),带参数  

function showHtmlcallJava2() {  

var str = window.android.jsCallJavaWithParams("Devin Chen");  

document.getElementById("info2").value = str;  

}  

//提供给java调用的方法  

function show() {  

document.getElementById("id_input").value = "Java调用Html中的方法";  

}  

//提供给java调用的方法,带参数  

function showWithParam(param) {  

document.getElementById("id_input2").value = "Java调用Html中的方法: " + param;  

}  

/script  

/head  

body  

input id="info1" style="width: 90%" type="text" value="null" /br  

input type="button" value="Html调用Java方法" onclick="showHtmlcallJava()" /br  

input id="info2" style="width: 90%" type="text" value="null" /br  

input type="button" value="Html调用带参数的Java方法" onclick="showHtmlcallJava2()" /br  

input id="id_input" style="width: 90%" type="text" value="null" /br  

input type="button" value="Java调用Html方法" onclick="window.android.javaCallJavaScript()" /br  

input id="id_input2" style="width: 90%" type="text" value="null" /br  

input type="button" value="Java调用带参数的Html方法" onclick="window.android.javaCallJavaScriptWithParams()" /  

/body  

/html

Android部分的布局就一个WebView,MainActivity源代码:

/** 

* java方法和javascript方法的相互调用 

*/  

public class MainActivity extends AppCompatActivity {  

private static final String url = "";  

private WebView mWebView;  

@Override  

protected void onCreate(Bundle savedInstanceState) {  

super.onCreate(savedInstanceState);  

setContentView(R.layout.activity_main);  

initView();  

}  

private void initView() {  

mWebView = (WebView) findViewById(R.id.web_main);  

WebSettings settings = mWebView.getSettings();  

settings.setJavaScriptEnabled(true);  

settings.setDefaultTextEncodingName("utf-8");  

mWebView.loadUrl(url);  

mWebView.setWebViewClient(new WebViewClient());  

//这两句是必须的,"android"就是jsp中调用方法时window后面的对象  

Object obj = getObject();  

mWebView.addJavascriptInterface(obj, "android");  

}  

private Object getObject() {  

Object obj = new Object() {  

/** 

* html中的JavaScript调用Java方法 

* 注解是必须的 

* @return 

*/  

@JavascriptInterface  

public String jsCallJava() {  

return "JavaScript调用Java方法";  

}  

/** 

* html中的JavaScript调用带参数的Java方法 

* 注解是必须的 

* @return 

*/  

@JavascriptInterface  

public String jsCallJavaWithParams(String var) {  

return "JavaScript调用带参数的Java方法" + var;  

}  

/** 

* java调用html中的方法,遗憾的是不知道有什么办法可以拿到返回值 

*/  

@JavascriptInterface  

public void javaCallJavaScript() {  

runOnUiThread(new Runnable() {  

@Override  

public void run() {  

mWebView.loadUrl("javascript:show()");  

}  

});  

}  

/** 

* java调用html中的方法,并且传递参数,这个有大用 

*/  

@JavascriptInterface  

public void javaCallJavaScriptWithParams() {  

runOnUiThread(new Runnable() {  

@Override  

public void run() {  

mWebView.loadUrl("javascript:showWithParam('baoge')");  

}  

});  

}  

};  

return obj;  

}  

}

怎么用js调用java的接口?

参考这两个 webSettings.setJavaScriptEnabled(true); 是启用js,mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo"); 是定义个对象demo,js中调用demo对象就可以调用刚刚定义的java方法 了。这两个是关键

JavaScript的对象怎么在java后台调用

javascript的对象和java是不能互通的。如果js一定要访问java也不是不可以,要装一个插件性质的东西。

建议:

1,使用DWR做对象映射。

2,把对象变成一段json传到后端解析。

如何才能让JavaScript的onclick事件调用一个java方法

onclick方法是属于js的一个函数,是可以将java代码写在里面的,示例如下: html里的button按钮是借助javascript用的,onclick是鼠标单击事件,单击会触发事件的执行,给你个例子吧 function welcome(){alert("测试button按钮");}屏幕上会出现

当前文章:javascript调用java,javascript调用jar
转载来源:https://www.cdcxhl.com/article38/dsejhpp.html

成都网站建设公司_创新互联,为您提供企业网站制作品牌网站建设网站策划移动网站建设关键词优化网站内链

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营