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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么实现javascript中调用java类中的方法相关的知识,希望对你有一定的参考价值。

参考技术A 实现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();

logutil在java中怎么调用

  JS不方便调试,alert这种方式不太友好,比较浪费时间。

  了解到浏览器内置了Console对象(JavaScript中没有),但是不同浏览器支持的方法确是不同的。

  因此,有必要自己对Console的方法进行封装下,从而适应不同浏览器。

  工具类JS源码

  //调试工具类

  var LogUtil = (function(win, doc)

  var LogUtil = win.LogUtil || ;

  //默认可以使用

  LogUtil.enable = true;

  //以下4个方法,IE/Firefox/Chrome/Opera都支持

  //console-info 消息

  LogUtil.info = function(msg)

  LogUtil.doLog(msg,'info');

  ;

  //console-error 错误

  LogUtil.error = function(msg)

  LogUtil.doLog(msg,'error');

  ;

  //console-warn 警告

  LogUtil.warn = function(msg)

  LogUtil.doLog(msg,'warn');

  ;

  //console-log,可以显示(Firefox下,在All中显示,错误-警告-消息-调试信息中都不会显示)

  LogUtil.log = function(msg)

  LogUtil.doLog(msg,'log');

  ;

  //以下是某个或某几个浏览器支持的方法,部分浏览器可能不支持;如果不支持,不会报错,也没有提示

  //debug

  LogUtil.debug = function(msg)

  LogUtil.doLog(msg, 'debug');

  ;

  //用户根据自己的需求,调用某个浏览器特定的方法

  LogUtil.doLog = function(msg, level)

  var useable = LogUtil.isUseable(level);

  //可用才能调用

  if(useable)

  win.console[level](msg);

  

  ;

  //console的方法是否可用,IE/Firefox/Chorome/Opera支持的方法是不同的

  //IE控制台 log info warn error assert dir clear profile profileEnd

  //Firebug控制台 log info warn error debug exception assert dir dirxml
trace

  //group groupEnd groupCollapsed time timeEnd profile profileEnd count clear
table notifyFirebug firebug

  //Chrom控制台 profiles memory debug error info log warn dir dirxml trace
assert count markTimeline

  //profile profileEnd time timeEnd group groupCollapsed groupEnd

  //Opera控制台 time timeEnd trace profile profileEnd debug log info warn error
assert dir

  //dirxml group groupCollapsed groupEnd count table

  //判断某个level的调试是否可用(level=error,warn,info,debug等)

  LogUtil.isUseable =function(level)

  var useable = LogUtil.enable && win.console &&
win.console[level];

  return useable;

  

  return LogUtil;

  )(window, document);
测试例子
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>fansunion-log-demo</title>
<script src="js/fansunion-log.js"></script>
<script type="text/javascript">
function testLog()

//4个“一定”正确的方法,IE/Firefox/Chrome/Opera都支持
LogUtil.info("info");
LogUtil.log("log");
LogUtil.error("error");
LogUtil.warn("warn");

//可选的,Firefox支持,IE不支持
LogUtil.debug("debug");



testLog();

</script>

<body>
</body>
</html>
参考技术A 下面是一个小的例子:

import java.util.logging.*;

public class TestLogger
public static void main(String[] args)
Logger log = Logger.getLogger("lavasoft");
log.setLevel(Level.INFO);
Logger log1 = Logger.getLogger("lavasoft");
System.out.println(log==log1); //true
Logger log2 = Logger.getLogger("lavasoft.blog");
log2.setLevel(Level.WARNING);

log.info("aaa");
log2.info("bbb");
log2.fine("fine");

本回答被提问者和网友采纳
参考技术B 下面是一个小的例子:

import java.util.logging.*;

public class TestLogger
public static void main(String[] args)
Logger log = Logger.getLogger("lavasoft");
log.setLevel(Level.INFO);
Logger log1 = Logger.getLogger("lavasoft");
System.out.println(log==log1); //true
Logger log2 = Logger.getLogger("lavasoft.blog");
log2.setLevel(Level.WARNING);

log.info("aaa");
log2.info("bbb");
log2.fine("fine");

以上是关于怎么实现javascript中调用java类中的方法的主要内容,如果未能解决你的问题,请参考以下文章

C#中怎么调用WebService

logutil在java中怎么调用

js怎么调用java 类中方法

JAVA和Android的回调机制

java中API怎么调用啊?

java中一个类怎么调用另一个类中的函数