因此,我正在为嵌入式 Web 浏览器 (Sketchup) 设计一个 GWT 应用程序。我可以通过将 window.location 值更改为“skp::myFunciton@myParams”来控制 Sketchup。Sketchup 可以在浏览器中执行 javascript。我想做的是让sketchup给我它模型的内容。
public static native void getModel() /*-{
$wnd.location = "skp:getModel@";
}-*/;
在第二个草图后有结果。但是我们如何让它回到 gwt 呢?问题是入口点实例发起了请求,而 JSNI 只能将静态方法映射到 javascript。
我以为我有一个包含事件和元素的解决方案......
//Sketchup javascript
var gwtwidget = document.getElementById("myTextArea")
gwtwidget.value = "blahblah";
gwtwidget.onchange();
然后监听 GWT 的变化。唉,它不起作用。Gwt 自己的事件系统覆盖、接收、阻止(或其他)事件。我应该采取什么方法?我一直在网上搜索信息,但我当然无法理解它。我猜答案是……
1 从 javascript 调用一个入口点实例方法(不知何故)
2 从 javascript 触发一个事件,该事件将由 gwt 拾取(不知何故)
3 设置各种异步回调接口机制(不知何故)