js调用java函数,js调用java类方法

http://www.itjxue.com  2023-01-06 17:13  来源:未知  点击次数: 

如何在JAVASCRIPT调用Android JAVA函数

你好:

一、网页的JS代码调用ANDROID中JAVA代码的方法

在网页中调用java代码、需要在webview控件中添加javascriptInterface

contentWebView = (WebView) findViewById(R.id.webview);

//启用javascript

contentWebView.getSettings().setJavaScriptEnabled(true);

contentWebView.addJavascriptInterface(this, "js对象名");

在Activity中定义一个要被js调用的方法、src为js传递过来的参数、如果没有不传也可以

public void jsFunction(final String str) {

Toast.makeText(this, str, Toast.LENGTH_SHORT).show();

runOnUiThread(new Runnable() {

@Override

public void run() {

//在里对Android应用的UI进行处理

}

});

}

在网页中、只需要像调用js方法一样、进行调用就可以

a onClick="window.js对象名.jsFunction(′hello world′)"

点击调用java代码并传递参数

/a

二、ANDROID中JAVA代码调用网页的JS代码的方法

Java代码调用js并传参其实是通过WebView的loadUrl方法去调用的、只是参数url的写法不一样而已

// 无参数调用

contentWebView.loadUrl("javascript:javacalljs()");

// 传递参数调用

contentWebView.loadUrl("javascript:javacalljswithargs("

+ "′hello world′" + ")");

三、JAVA和JS交互注意事项

1、Java 调用 js 里面的函数、效率并不是很高、估计要200ms左右吧、做交互性很强的事情、这种速度很难让人接受、而js去调Java的方法、速度很快、50ms左右、所以尽量用js调用Java方法

2、Java 调用 js 的函数、没有返回值、调用了就控制不到了

3、Js 调用 Java 的方法、返回值如果是字符串、你会发现这个字符串是 native 的、转成 locale 的才能正常使用、使用 toLocaleString() 函数就可以了、不过这个函数的速度并不快、转化的字符串如果很多、将会很耗费时间

4、网页中尽量不要使用jQuery、执行起来需要5-6秒、最好使用原生的js写业务脚本、以提升加载速度、改善用户体验

怎么实现javascript中调用java类中的方法

实现javascript中调用java类中的方法如下:

只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上。

1、映射Java对象到JavaScript对象上

代码如下:

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

mWebView.setVerticalScrollbarOverlay(true);

final WebSettings settings = mWebView.getSettings();

settings.setSupportZoom(true);

//WebView启用Javascript脚本执行

settings.setJavaScriptEnabled(true);

settings.setJavaScriptCanOpenWindowsAutomatically(true);

//映射Java对象到一个名为”js2java“的Javascript对象上

//JavaScript中可以通过"window.js2java"来调用Java对象的方法

mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");

代码如下:

/**网页Javascript调用接口**/

class JSInvokeClass {

public void back() {

activity.finish();

}

}

2、JavaScript调用Java对象示例

调用上述JSInvokeClass类对象的back方法,如下:

window.js2java.back();

js中可以调用java代码吗

js不能直接调用java代码。

可以通过页面提交后台的方式,间接调用后台的服务java代码。

也可以通过ajax的方式,调用后台的服务java代码。

两种方式稍有差别,不过都是前后台的通信交互。

js怎么调用JAVA方法

一般的浏览器中是无法通过js调用本地java程序的,但是可以调用嵌入到网页的applet的方法。交互方式如下:

applet?codebase?=?"."?width?=?"400"?height??=?"400"

??name=?"MyApplet"?code?=?"test.applets.MyApplet1.class"?

script

//?js访问applet属性:document.appletName.appletField?(属性必须是public的)?

//?js访问Applet方法:document.appletName.appletMethod?(方法必须是public的)

function?showLable{

?????//?调用test.applets.MyApplet1类的invokeByJS方法?

?????document.applets["MyApplet"].invokeByJS('myvalue');

}

/script

如何实现js调用java函数

var xmlHttp; //创建XMLHttpRequest对象 function createXMLHttpRequest(){ if(window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); } } function startRequest(){ createXMLHttpRequest(); try{ xmlHttp.onreadystatechange = handleStateChange; xmlHttp.open("GET", "xxxxxxx.action",true); xmlHttp.send(null); }catch(exception){ alert(exception.message); } } function handleStateChange(){ if(xmlHttp.readyState == 4){ if (xmlHttp.status == 200 || xmlHttp.status == 0){ // 取得返回字符串 var resp = xmlHttp.responseText; // 然后可以把resp构造返回JSON对象或者XML对象 } }}JS中调用 startRequest()方法,handleStateChange()方法中获得JAVA类的返回数据

js怎么调用java 类中方法?

\r\n\r\n//上面我用java代码根据id取得了一个user类的实体 u 下面就可以用js操作显示等等\r\nalert();//在窗口打印一个用户名\r\n\r\n

(责任编辑:IT教学网)

更多

推荐思科认证文章