java调用js方法

js方法

  function data(v) {
        document.getElementById('demotest').value = v;
    }

java 调用写法

WebEngine engine = webviewid.getEngine();//WebView 获取html加载对象
String javascript = "data('读卡程序 V1.0.0.104[卡号信息:1952161201]')";			
Object executeScript = engine.executeScript(javascript);//执行方法 executeScript 为返回参数

执行前截图
在这里插入图片描述
执行后截图
在这里插入图片描述

js调用java

js 代码

 var apps = 'test';
 function showJava() {
        document.getElementById("infoJava").innerText = apps.showInfo("java");
 }

java 代码

定义方法对象(对象方法必须公有)

public static class A{ 
	    public String showInfo(String info) {
	        return "A{info="+ info +"}";
	   }
	}

绑定到webview界面中

A apps = new A();
WebEngine engine = webviewid.getEngine();
engine.getLoadWorker().stateProperty().addListener(
			(ObservableValue<? extends Worker.State> ov, Worker.State oldState, Worker.State newState) -> {
				if (newState == Worker.State.SUCCEEDED) {
					JSObject win = (JSObject) engine.executeScript("window");
					win.setMember("apps", apps);// 设置变量
				}
			});

执行前:
在这里插入图片描述
执行后:

在这里插入图片描述
注意:加载html的方式,如果是本地以 file:/// 加上html在本地的绝对路径,如果是加载服务器的就直接传入url地址。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐