jxbrowser 实现java 和 js互相调用(破解版请联系作者)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shuaizai88/article/details/73743626

今天我们使用jxbrowser  实现js直接调用java代码。

调用javaTest类的 alert方法。


主要就是给浏览器对象添加一个监听,然后在页面渲染完成之后,获取到js的window对象,给window对象添加一个 属性。

破解版联系QQ 921888199

final Browser browser = new Browser();
        BrowserView browserView = new BrowserView(browser);
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.add(browserView, BorderLayout.CENTER);
        frame.setSize(700, 500);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        browser.addLoadListener(new LoadAdapter() {
            @Override
            public void onFinishLoadingFrame(FinishLoadingEvent event) {
                if (event.isMainFrame()) {
                    JSValue window = browser.executeJavaScriptAndReturnValue("window");
                    // 给jswindows对象添加一个扩展的属性
                    JavaTest javaObject = new JavaTest();
                    window.asObject().setProperty("javaTest", javaObject);
                }
            }
        });
        browser.loadURL("E:/workspace48/browser/test.html");
<script>
 
 
 
 function exeJava(){
 	try
 {
 	javaTest.alert('111');
 }
 catch(e)
 {
 	alert(e);
 }
 }
</script>
<body onclick="exeJava()">
111111
</body>



 public static class JavaTest {
        public void alert(String args)
        {
            System.out.println("im alert");
        }
    }

 
 



猜你喜欢

转载自blog.csdn.net/shuaizai88/article/details/73743626