如何使用jsInterop从GWT调用JavaScript函数?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用jsInterop从GWT调用JavaScript函数?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1782字,纯文字阅读大概需要3分钟。
内容图文
![如何使用jsInterop从GWT调用JavaScript函数?](/upload/InfoBanner/zyjiaocheng/728/a99aee56222047c29068c64d40d6c0e2.jpg)
我尝试了https://docs.google.com/document/d/10fmlEYIHcyead_4R1S5wKGs1t2I7Fnp_PaNaa7XTEk0/edit#中的示例
在@JsFunction部分,但它只给出了从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);
}
现在我想使用jsInterop注释从我的应用程序调用函数’startLogon()’ – 我的包装器.我尝试了以下两个例子但没有成功:
Implement Javascript Function Callback with GWT JsInterop
JsInterop wrapping a javascript function property
我不得不说,我的JavaScript知识非常糟糕.
有人可以给我一个代码示例吗?
提前谢谢了!
解决方法:
将此静态方法添加到任何类.
@JsMethod(namespace = GLOBAL)
public static native void startLogon();
这将有效,但您无法对返回的承诺执行任何操作.如果你想使用返回的promise我建议添加elemental2并使用Promise startLogon()代替.
例如.像这样并更改js代码以返回承诺:
@Override
public boolean error(Request request, Throwable throwable) {
Promise<String> promise = startLogon();
promise.then(s -> {
logger.info("Refreshed token: " + s);
return null;
}).catch_(error -> {
logger.severe("Refresh Error: " + error.toString());
return null;
});
return false;
}
@JsMethod(namespace = GLOBAL)
public static native Promise<String> startLogon();
内容总结
以上是互联网集市为您收集整理的如何使用jsInterop从GWT调用JavaScript函数?全部内容,希望文章能够帮你解决如何使用jsInterop从GWT调用JavaScript函数?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。