我试图围绕在Nashorn的webview中的HTML页面和主机nashorn应用程序之间建立通信。我读了这个教程 here
但我似乎无法获得如何创建一个回调,我可以在HTML页面内调用它来在主机中运行某些东西。包装功能工作正常我只是不知道从这里去哪里获取webview html来主持通信。无论我怎么做,我得到一个空对象,但没有方法。
This.engine.loadWorker.stateProperty().addListener(new ChangeListener() {
changed: function(value, oldState, newState) {
if (newState == Worker.State.SUCCEEDED) {
function testObj(){
this.foo = function(){
print('hello');
}
}
This.document = wrap(This.engine.executeScript("document"));
This.window = wrap(This.engine.executeScript("window"));
我试过
This.window.setMember('HOST',new testObj());
和
This.window.setMember('HOST',wrap(new testObj()));
两个人都没有在窗口中找到任何东西
This.window.executeScript("window").setMember('HOST',new testObj());
在HTML页面javascript" {}"
中获取一个空对象