js怎么调用JAVA方法

JavaScript09

js怎么调用JAVA方法,第1张

一般的浏览器中是无法通过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>

为了方便网页和Android应用的交互,Android系统提供了WebView中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()