问题标签 [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.
java - 如何使用 JsInterop 将 JSON 映射到具有动态属性名称的 POJO
我有这种需要使用 JsInterop 转换为 POJO 的 JSON:
其中asdf123asdf
可以是任何属性名称。这是我有一些(部分)
是否有解决方法来实现动态属性名称?
gwt - 为什么我的@JsProperty 没有在 javascript 中保留名称?
我有以下课程:
现在我将它传递给一个 javascript 方法,当我使用开发人员工具进行检查时,我得到的属性名称是extractUrlsWithoutProtocol_0_g$
更重要的是,如果我删除 @JsProperty 注释,我对生成的代码没有任何改变......
更新:有效的是
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
方法。但我不知道怎么做。
javascript - 使用 GWT JsInterop 实现 Javascript 函数回调
我想像这样包装一个javascript代码:
下面是我如何用 Java 编写它:
但它不起作用。即使你在我的浏览器控制台中也没有任何错误。有人知道如何使它适用于外部回调函数吗?谢谢并恭祝安康。
java - JsInterop - 获取数组中的值
我在 JsInterop 中创建了自己的自定义数组:
这是按比例缩小的 JsArrayHelper 类:
有没有更好的方法来获取数组的值而不是使用 JSNI?
javascript - 包装 javascript 函数属性的 JsInterop
我正在使用 GWT 2.8,并且正在开发一个 javascript 库的包装器。
我试图包装的 javascript 类的属性之一是函数。我希望包装器尽可能地与本机 javascript 工作。如何包装作为 javascript 函数的 JsProperty?
详细信息:javascript 类有一个属性,该属性是一个在触发特定事件时调用的函数。我希望能够用 Java 编写一个 labmda 函数,并将其分配给这个属性,然后它将在 javascript 中运行。
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 方法,我会得到另一个错误:
也不会工作。
谁能告诉我我必须做些什么才能让它工作,以及更好的解决方案是什么?
非常感谢,如果有人可以在这里帮助我,我会非常高兴。
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 知识非常糟糕。
有人可以给我一个代码示例吗?提前谢谢了!
java - GWT 互操作:获取完整的堆栈跟踪
给定以下使用JSInterop定义的简单 Java 类:
在 JavaScript 中调用如下:
发生异常时会发出以下堆栈跟踪:
我的问题是如何获取发生错误的完整堆栈跟踪;test1()
这是一个堆栈跟踪,包括在 JavaScript ( )中调用 JSInterop 方法的位置。
这里是项目的链接以及示例的完整源代码:ExceptionTest.java
javascript - 使用JsConstructor处理多个构造函数
我有一个有两个构造函数的类:
运行 gwt compile [With GWT-dev 2.8] 时出现以下错误
我一直在努力解决这个错误,但没有太大成功。我不确定如何委托给其他构造函数。
很感谢任何形式的帮助!
谢谢!