EAS8.8 浏览器控件调用Java代码

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

EAS8.8 浏览器控件调用Java代码

使用浏览器控件嵌入web页面后,web页面与Java代码如何进行交换,浏览器如何调用Java代码。

发布版本:EAS8.8

上线日期:2022/10/31

补丁号:EAS8.8安装包

新特性介绍

  • 浏览器控件调用Java代码

操作指引

1需要先参考浏览器控件的使用。

特性效果展示

下面将给出一个web页面调用Java代码的例子,web界面中有一个文本输入框和一个按钮,当点击按钮后会从StringProvider这个类获取文本并填充到文本输入框中。

首先准备Web页面clicktest.html 其代码如下:

<!DOCTYPE html> 
<html>
 <head>
  <meta charset="utf-8"> 
  <meta http-equiv="X-UA-Compatible" content="IE=9,IE=Edge,chrome=1"> 
  <title>从Java代码加载文本</title> 
  <script> 
  function copyText() 
  { 
      document.getElementById("field2").value=javaf.getStr();
   } 
</script> 
</head> 
<body> 字段1: <input type="text" id="field2"> <br>
<br> <button onclick="copyText()">复制文本</button> 
<p>在按钮点击时触发注册的Java函数。将从Java函数获取值填充到字段1中。</p>
</body> 
</html>

其次准备StringProvider.java里面有一个方法getStr()返回文本用于填充到Web页面的字段1中其代码如下:

public class StringProvider
{

	public String getStr()
	{
		return "测试浏览器控件调用java资源。";
	}
	
}

接下来准备主代码KDWebViewPanelFunctionTest.java,其会初始化一个浏览器控件并将创建StringProvider实例并注册为浏览的函数。

public class KDWebViewPanelFunctionTest extends JFrame
{

	private KDWebViewPanel panel;

	public KDWebViewPanelFunctionTest(String name)
	{
		super(name);
		panel = new KDWebViewPanel(WebServer.getDefaultWebServer().getClassPathResourceURL(
				this.getClass().getName(), "clicktest.html"), new IPageReady()
		{
			
			@Override
			public void onReady(IExecutePanel panel)
			{
				System.out.println("page loaded.");
				//注册函数,需要在页面加载完毕后执行。
				initFunction();
			}
		}, false);
		setSize(800,450);
		add(panel.getMainComponent(), BorderLayout.CENTER);
		setVisible(true);
		panel.reload();
	}
	
	
	private void initFunction()
	{
	        //javaf表示javaScript对象,getStr为方法名,new StringProvider()java对象,false表示
	        //不将getStr映射为windows的函数名,这样如果需要在javascript里调用这个方法要使用
	        //javaf.getStr()
		panel.registerFunction("javaf", "getStr", new StringProvider(), false);
	}
	
	
	public static void main(String[] args)
	{
		SwingUtilities.invokeLater(()->new KDWebViewPanelFunctionTest("test browser panel"));
	}
	
}

需要注意:注册浏览器函数的时机必须是页面加载完毕后,不然会抛出浏览器未初始化错误。

效果如下:

EAS8.8 浏览器控件调用Java代码

使用浏览器控件嵌入web页面后,web页面与Java代码如何进行交换,浏览器如何调用Java代码。发布版本:EAS8.8上线日期:2022/10/31补丁号:EA...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息