jxbrowser 實現java 和 js互相呼叫(破解版請聯絡作者)
阿新 • • 發佈:2018-11-10
今天我們使用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"); } }