问题标签 [gwt-jsinterop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gwt - 使用 -generateJsInteropExports 控制 GWT 包含哪些类
我可以控制使用时包含哪些类-generateJsInteropExports
吗?
我发现当我使用标志时,JS 输出包含一堆我没有在项目中使用的类,但它们的源代码出现在我正在使用的一些包中。我不希望这些类包含在输出中。通常,GWT 在只引入我实际使用的类方面做得很好。
我如何告诉编译器“在这个编译中我希望你为这些类生成 JsInterop,但不是这些”?
我找到了这些GWT 编译器选项:
在生成 JsInterop 导出时包含/排除成员和类。可以多次设置标志以扩展模式。(该标志仅在通过 -generateJsInteropExports 启用导出时有效)
但我似乎无法让他们工作。我尝试使用:
课程不包括在内。
gwt - 如果我想为 GWT 3 做好准备,我应该停止使用 GSS 等吗?
我放弃了 GWT 小部件,转而使用 JsInterop 和 Elemental2。
但我仍在使用来自“gwt-user.jar”的模块用于GSS、Resources 和 I18N。
下一版本的 GWT 是否可能支持这些模块?如果没有,我可以使用对未来友好的替代方案吗?
我刚刚开始,所以我宁愿现在“正确”地得到它,而不是稍后再取消它。
gwt - 带有 JsInterop 的 GWT 中的 Javascript 模块函数
希望这比我做的要容易 - 我是一名 Java 编码员,一些内部 Javascript 方面对我来说有点陌生。
尝试将出色的CodeJar 库嵌入GWT 面板中。CodeJar 有一个非常好的/简单的示例:
模块函数本身如下所示:
'editor' 是一个 Div 引用,'highlight' 是一个用于处理代码高亮的回调库函数。
我正在与 JsInterop 标记和代码作斗争,以使 Javascript 模块与 GWT 一起工作。以上有一些我正在与之抗争的方面
- 替换“导入”,以便 GWT 可以使用 javascript 模块代码。Obvioulsy 我可以在我的顶级 index.html 中导入 js,但据我了解,JS 模块不会成为全局命名空间的一部分,它们只能从导入它们的 JS 模块中使用。在我的情况下,大概需要是 GWT 代码。
- 在 GWT 中重新编码上述内容时如何传递回调函数
- 如何获取我自己的“jar”引用来设置/获取自己的文本(替换使用本地存储)
gwt - 如何在使用 gwt.jsinterop 时访问 window.opener
我想通过 gwt.jsinterop 访问 javascript window.opener。所以我这样定义我的界面:
但这不起作用。看来我必须定义:
但是我怎样才能访问“Window”的基本实例“window”呢?(见不同情况)
谢谢
java - WebGPU JsInterop 包装器
我正在尝试使用 JsInterop 在 GWT 2.9.0 中使用 WebGPU,但在尝试将所有 WebGPU 接口映射到 Java 时遇到了一些问题。我所指的定义位于https://www.w3.org/TR/webgpu/#idl-index
1)我如何映射一个无符号长长的?
有一个 typedef:typedef [EnforceRange] unsigned long long GPUSize64;
例如在这里使用:
如果我把它包起来
我收到一条错误消息:
鉴于我的更高级别的 API 仅在此处公开一个 int 以与其他 API 兼容,我可能只使用一个 int,但映射 GPUSize64 的正确解决方案是什么?
2)我如何包装字典?
当我尝试翻译以下定义时
像这样:
然后按以下方式使用它:
我可以编译得很好,但在运行时出现错误说
令我困惑的是,它两次说“无法从'GPUExtent3DDict'读取'width'属性”,这暗示它需要嵌套的东西,并且可能与typedef中关于“sequence or GPUExtent3DDict”的最后一行有关,我不明白。当我以这种方式定义 GPUExtent3D 时:
然后像这样使用它:
它工作得很好,但我想用 JsInterop 方式而不是 JavaScriptObject 范围。我该怎么做呢?
3)如何映射一个枚举?
我还在这里找到了一个可行的解决方案,我想知道这是推荐的还是不推荐使用的/旧的方法给定一个枚举声明:
我可以像这样映射它吗
或者有没有办法为此使用带有@JsEnum的java枚举(我试过但在值中使用的破折号有问题)
非常感谢,祝您有愉快的一天!
gwt - 从 JS 调用 Java 对象
我正在尝试与 JS api 交互,一旦视频加载/加载失败/被查看,我想使用 EventSystem 发回一个事件。我得到了第一部分的工作,我称之为原生 JS api:
我的问题是从 JS 调用 Java 对象,我附带了一个响应处理程序类,它依赖于 EventSystem。如何在此类中初始化 EventSystem,然后让 JS 承诺解析调用sendEvent
?(为了说明清楚,上面的JS代码控制台调用,需要改为调用eventSystem,来报告成功或错误)。