标签: gwt-jsinterop

如何在GWT中使用XMLHttpRequest?

XMLHttpRequest是来自GWT客户端的HTTP调用的替代方案,允许控制请求/响应的所有方面.但是怎么用呢?javadoc地址:http://www.gwtproject.org/javadoc/latest/com/google/gwt/xhr/client/class-use/XMLHttpRequest.html

java gwt gwt-elemental gwt-2.8 gwt-jsinterop

5
推荐指数
1
解决办法
781
查看次数

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

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

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

var client = new Circuit.Client({
    client_id: '78cafde2f6854ad5ad80a67c532687bc',
    scope: 'READ_USER_PROFILE,READ_CONVERSATIONS',
    domain: 'circuitsandbox.net'
});

function startLogon() {
    client.logon()
      .then(user => console.log('Logged on as ' + user.displayName))
      .then(client.addEventListener('itemAdded', item => console.log('itemAdded event received:', item)))
      .then(client.getConversations)
      .then(conversations => {
         console.log('Retrieved ' + conversations.length + ' conversations');
    return client.addTextItem(conversations[0].convId, 'Hello World');
       })
      .then(item => console.log('Msg sent on ' + (new Date(item.creationTime)).toString()))
      .catch(console.error);
}
Run Code Online (Sandbox Code Playgroud)

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

使用GWT JsInterop实现Javascript函数回调

JsInterop包装了javascript函数属性

我不得不说,我的JavaScript知识很不好。

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

javascript gwt gwt-jsinterop

3
推荐指数
1
解决办法
804
查看次数

Js.cast() 如何进行类型检查?

我正在使用带有 elemental2-1.0.0-RC1 的 GWT 2.9。

以下代码ClassCastException在运行时抛出 a :

DocumentRange documentRange = Js.cast(DomGlobal.document); // Fails
Range range = documentRange.createRange(); // Never reaches here
Run Code Online (Sandbox Code Playgroud)

当我改为使用 an 时Js.uncheckedCast(),它成功了:

DocumentRange documentRange = Js.uncheckedCast(DomGlobal.document);
Range range = documentRange.createRange(); // Works
Run Code Online (Sandbox Code Playgroud)

的文档Js.uncheckedCast()说:

“你应该总是更喜欢定期投射(除非你知道自己在做什么!)。”

我不知道为什么我必须使用它,所以我感到紧张。有人可以解释如何Js.cast()执行其类型检查以及为什么我需要Js.uncheckedCast()在这种情况下使用 an吗?

gwt gwt-elemental gwt-jsinterop

2
推荐指数
1
解决办法
74
查看次数

Gwt elemental2:如何在gwt JavaScript对象和JsInterop对象之间进行转换?

让我说我有一个com.google.gwt.dom.client.Document gwtDocument节点,我想将其转换为elemental2.dom.Document

由于Document扩展了JavaScriptObject,我认为我可以做类似的事情:

elemental2.dom.Document elementalDoc = (elemental2.dom.Document)(gwtDocument);
Run Code Online (Sandbox Code Playgroud)

但是,使用jsinterop的elemental2类不会扩展JavaScriptObject.那么如何在两者之间进行转换呢?

谢谢!

gwt gwt-elemental gwt-jsinterop

1
推荐指数
1
解决办法
448
查看次数

在jsinterop中哪里可以找到LinkedHashSet?

我在GWT中有以下实体

@JsType(namespace = "my.entities")
public class MyEntity {
   private Set<String> texts;
   public Set<String> getTexts(){
       if(this.texts==null)
           this.texts=new LinkedHashSet<String>();
       return this.texts;
   }

   public void setTexts(Set<String> texts){
       this.texts=texts;
   }

}
Run Code Online (Sandbox Code Playgroud)

当我myEntityVar.getTexts()用Java语言调用时,返回的对象是HashSet。似乎jsinterop将HashSet的java实现转换为JavaScript。但是如何使用JavaScript创建新的HashSet myEntityVar.setTexts(texts)呢?我为“文本”参数尝试了一个数组,但这不起作用。因此,我需要以某种方式在JavaScript中使用HashSet。但是,我不知道在哪里找到它。任何的想法?

gwt linkedhashset gwt-jsinterop

0
推荐指数
1
解决办法
72
查看次数