问题标签 [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.

0 投票
0 回答
322 浏览

java - 如何使用 JsInterop 将 JSON 映射到具有动态属性名称的 POJO

我有这种需要使用 JsInterop 转换为 POJO 的 JSON:

其中asdf123asdf可以是任何属性名称。这是我有一些(部分)

是否有解决方法来实现动态属性名称?

0 投票
1 回答
327 浏览

gwt - 为什么我的@JsProperty 没有在 javascript 中保留名称?

我有以下课程:

现在我将它传递给一个 javascript 方法,当我使用开发人员工具进行检查时,我得到的属性名称是extractUrlsWithoutProtocol_0_g$

更重要的是,如果我删除 @JsProperty 注释,我对生成的代码没有任何改变......

更新:有效的是

0 投票
1 回答
173 浏览

javascript - 如何使用@JsInterop 在 GWT 应用程序中公开增量 DOM 库的 JS 补丁功能

我想在我的 GWT 应用程序中使用增量 DOM 库。

https://google.github.io/incremental-dom/#about

当我来自 Java 世界时,我对 JavaScript 命名空间和模块的概念感到困惑。我能够将 Closure Compiler 与 Incremental DOM 的闭包版本一起使用(必须从源代码构建)。

它从以下行开始:

因此,如果我要在常规 JS 中使用它,我会输入:

然后该patch功能将在我的代码范围内可用。但是如何使它可以从@JsInterop带注释的类中访问呢?

我试过类似的东西:

但它不起作用。我在运行时收到此错误:

所以我想我必须以某种方式公开incrementaldom模块或至少只公开patch方法。但我不知道怎么做。

0 投票
1 回答
1127 浏览

javascript - 使用 GWT JsInterop 实现 Javascript 函数回调

我想像这样包装一个javascript代码:

下面是我如何用 Java 编写它:

但它不起作用。即使你在我的浏览器控制台中也没有任何错误。有人知道如何使它适用于外部回调函数吗?谢谢并恭祝安康。

0 投票
1 回答
316 浏览

java - JsInterop - 获取数组中的值

我在 JsInterop 中创建了自己的自定义数组:

这是按比例缩小的 JsArrayHelper 类:

有没有更好的方法来获取数组的值而不是使用 JSNI?

0 投票
1 回答
909 浏览

javascript - 包装 javascript 函数属性的 JsInterop

我正在使用 GWT 2.8,并且正在开发一个 javascript 库的包装器。

我试图包装的 javascript 类的属性之一是函数。我希望包装器尽可能地与本机 javascript 工作。如何包装作为 javascript 函数的 JsProperty?

详细信息:javascript 类有一个属性,该属性是一个在触发特定事件时调用的函数。我希望能够用 Java 编写一个 labmda 函数,并将其分配给这个属性,然后它将在 javascript 中运行。

0 投票
1 回答
66 浏览

javascript - 如何使用 IsInterop 或 Babel 在 GWT 应用程序中实现电路沙盒客户端?

我必须在 GWT 中开发一个 Circuit Sandbox 客户端。https://unpkg.com/circuit-sdk使用 ES6 ,所以我不能使用 GWT JSNI。我正在尝试在https://circuit.github.io/jssdk.html上编写“登录和获取对话的预告示例” 。我不得不说,我的 JavaScript 知识就像初学者一样。

我想,我有两个选择:我的第一个选择是使用 GWT 的 JsInterop。(我已经使用它来实现此 GWT 应用程序的 Websocket。因此我使用了示例' http://www.g-widgets.com/2017/03/16/example-of-using-websockets-in-gwt -with-a-spring-boot-server/ ' 这工作正常。)

对于电路客户端,我开始编写以下 Java 类:

此代码无法工作,因为我没有定义 javascript 模块并且未实现登录方法。

如何访问 javascript 模块“电路”以及如何实现 logon() 方法?我还需要做什么才能让这个 JsInterop 类正常工作?

第二种选择:我已经使用 Babel 将https://circuitsandbox.net/sdk转换为 ES5。我将构建的脚本包含在我的 GWT 应用程序中,并尝试通过以下方式实现登录方法:

当我调用该方法时,出现几个错误:

出现此错误是因为 JSNI 无法编译 ES6。

如果我注释掉 client.logon javascript 方法,我会得到另一个错误:

也不会工作。

谁能告诉我我必须做些什么才能让它工作,以及更好的解决方案是什么?

非常感谢,如果有人可以在这里帮助我,我会非常高兴。

0 投票
1 回答
1523 浏览

javascript - 如何使用 jsInterop 从 GWT 调用 JavaScript 函数?

我在@JsFunction 部分尝试了文档https://docs.google.com/document/d/10fmlEYIHcyead_4R1S5wKGs1t2I7Fnp_PaNaa7XTEk0/edit# 中的示例,但它只提供了从 javascript 调用 java 函数的想法。

我的 GWT 应用程序中包含一个 javascript 文件,其中包含以下代码:

现在我想使用 jsInterop 注释从我的应用程序中调用函数'startLogon()' - 我使用包装器。我尝试了以下两个示例,但均未成功:

使用 GWT JsInterop 实现 Javascript 函数回调

包装 javascript 函数属性的 JsInterop

我不得不说,我的 JavaScript 知识非常糟糕。

有人可以给我一个代码示例吗?提前谢谢了!

0 投票
0 回答
101 浏览

java - GWT 互操作:获取完整的堆栈跟踪

给定以下使用JSInterop定义的简单 Java 类:

在 JavaScript 中调用如下:

发生异常时会发出以下堆栈跟踪:

我的问题是如何获取发生错误的完整堆栈跟踪test1()这是一个堆栈跟踪,包括在 JavaScript ( )中调用 JSInterop 方法的位置。

这里是项目的链接以及示例的完整源代码:ExceptionTest.java

0 投票
1 回答
464 浏览

javascript - 使用JsConstructor处理多个构造函数

我有一个有两个构造函数的类:

运行 gwt compile [With GWT-dev 2.8] 时出现以下错误

我一直在努力解决这个错误,但没有太大成功。我不确定如何委托给其他构造函数。

很感谢任何形式的帮助!

谢谢!