问题标签 [jsni]

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 投票
2 回答
896 浏览

gwt - 无法通过 JSNI 调用注入的谷歌地图 v3 api:$wnd.google.maps.LatLng 不是构造函数

我正在尝试通过 JSNI 使用谷歌地图,以下代码片段抛出异常:

com.google.gwt.core.client.JavaScriptException: (TypeError): $wnd.google.maps.LatLng 不是 com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248) 的构造函数。 ……

谁能帮我指出这里出了什么问题?

0 投票
3 回答
3306 浏览

javascript - 如何从 Javascript 函数调用 JSNI 函数?

这是 html 中的呼叫者按钮示例:

以下是我尝试过的一些功能,但没有奏效:

但是我们无法调用 Callee()。我们如何实现这一点?我的意思是我们如何从 javascript 调用 JSNI 函数?

帮助将不胜感激。

0 投票
1 回答
1970 浏览

java - gwt jsni document.documentElement.style.height

我尝试 使用 gwt jsni从此链接https://stackoverflow.com/a/9100406/942113调用代码。

我的方法看起来像

但是当我调用它时,什么也没有发生。

我的问题:不能document.documentElement.style.height用 gwt jsni 设置值吗?

0 投票
1 回答
1049 浏览

unit-testing - 单元测试如何使用 SmartGWT 类?

在我们的 SmartGWT Web 应用程序中,我们将域对象从服务器传递到客户端并返回(通过 GWT 序列化)。要在 DynamicForm 或 GridList 的客户端显示/编辑数据,我们必须将其转换为Record(或ListGridRecord)并在编辑回我们的域对象后。

我想为这种转换方法编写一个单元测试,但是在 JUnit 中的直接尝试失败了,因为记录getAttributesetAttribute方法是由JSOHelper.getAttribute/实现的JSOHelper.setAttribute,它们是native由 JavaScript 中的 JSNI 声明和实现的静态方法,因此只能在客户端上使用侧面,当编译为 JavaScript 时。

当使用 JUnit 中的这些方法时,我们会收到 UnsatisfiedLinkError,因为本地方法没有在那里实现。

有什么想法可以测试这些课程吗?

这些关键方法可以通过简单的 HashMap(或者 LinkedHashMap,如果属性顺序很重要)轻松实现 - 实际上 JavaScript 对象就是这样,如果只查看数据部分,而不是方法。因此,我只是考虑为一些选定的 SmartGWT 类(主要是 JSOHelper)提供替代实现,使用 Java 实现而不是 JavaScript 实现。

但我真的是第一个遇到这个问题的人吗?我是不是太笨了,找不到现有的解决方案?

0 投票
1 回答
296 浏览

gwt - 即时生成 JSNI

我有一些 java 对象,我想将它的所有方法公开给自定义 javascript 对象。因此,通过反射循环遍历所有 java 对象成员并生成 jsni 代码,如: $wnd.myjso.func1 = function() { @package.MyJavaObject::func1()}等似乎是合理的。 . 之后生成的 jsni 必须执行才能在浏览器窗口上创建 javascript 对象。如何实施?

0 投票
1 回答
962 浏览

gwt - 如何从 JSNI 中实例化一个 java 类

我正在尝试使用 JSO 的包私有方法在 JSNI 方法体内实例化一个 java 类型::new(),但所有实例都作为空句柄返回。怎么会?

是否可以使用与 Java 类似的语法来实例化该类?

以下是相关代码:

0 投票
1 回答
4501 浏览

java - 如何使用 JavaScript 覆盖类型 (GWT) 包装回调?

Display Object类中,除了事件之外,我已经包装了所有内容。我无法弄清楚模式,真的需要一个例子。

在 JavaScript 中,您可以像这样为对象创建回调:

我已经包装了鼠标事件参数:

显示对象使用相同的覆盖图案。我如何在 java 中编写回调并将其传递给 JSO?如果可以,请提供一个例子。:)

0 投票
1 回答
9561 浏览

javascript - 如何在 GWT 中实现 JSNI

我有 GWT 方面的经验,但对 JSNI 或 Javascript 一无所知。我现在正在为 JSNI 搜索几天,但我无法理解如何在我的 GWT 项目中实现 JSNI。

我将在哪里以及如何在我的 GWT 项目中添加一个 javascript 文件,我将在哪里编写我的 javascript?

然后我想从 java/GWT 调用一个 javascript 方法

下面是一个简单的示例,说明如何编写一个 JSNI 方法来显示一个 JavaScript 警报对话框:

但是我将在我的 GWT 项目中在哪里添加此代码

我刚刚创建了一个新项目“HelloJSNI”,在我的类 HelloJSNI.java 中,我添加了这段代码,我在写吗?

我能看到“hello JSNI”吗?谢谢

0 投票
1 回答
728 浏览

gwt - 从手写 javascript 调用实例方法的问题

任何人都可以帮助解决以下代码中的问题(基于对 SO 提出的类似问题的回答):

问题是 Javascript 找不到 jsFunction:Javascript 代码中的 alert(jsFunction) 返回“未定义”。

谢谢。

编辑:嗯,一小时后:发现我只需要that.@com...回来!

0 投票
2 回答
1082 浏览

javascript - GWT 和 JSNI。检查函数是否定义

html中有一个JavaScript函数

和 JSNI:

问题是第一个脚本并非总是定义的。如果定义了函数,如何检查它?

先感谢您!