您好我需要一些指导或如何做一个javascript库包装的指针。
我用一个函数创建一个简单的javascript“myTest.js”:
function myFunction(num)
{
if(num==1){
return "Hello World1!";
}else{
return "bye World2!";
}
}
我打电话给我简单的HTML:
<html>
<head>
<script type="text/javascript" SRC="myLib.js">
</script>
<title>Tutorial: HelloWorld</title>
</head>
<body>
<h1>Example HTML</h1>
<input type="button" value="button" onclick="alert(myFunction(1))">
</body>
</html>
显然,这个例子在GWT中很容易做到。
这只是为了让我学习如何使用javascript文件的gwt-wrapper来调用GWT中的函数。
由于
好吧,如果我有一个带有此功能的js文件,我需要一个更强大的示例:
function MyObject() {
// properties in config
this.displayname = 'First Last';
this.username = '1060';
this.domain = '12.18.34.234';
this.authname = '1060';
this.password = '1060';
this.transport = 'w34s';
}
并且在html中是脚本部分我进行了这个调用
var myObj = new MyObject();
我如何在GWT中做到这一点?
我必须创建MyObject类吗? 用javascript中显示的字段?
答案 0 :(得分:2)
要在Java和JavaScript类型之间架起桥梁,请使用GWT的overlay types来创建API包装层。
您可以创建一个单独的module来包含已包装的库并将其链接到主模块。
答案 1 :(得分:0)
如果你想在GWT中调用本机javascript,你可以在你的GWT类中定义一个本机方法,如下所示:
private native void test(String argument)/*-{
myFunction(argument);
}-*/
当你从GWT调用方法测试(“foo”)时,它将调用本机js函数myFunction(“foo”);
答案 2 :(得分:0)
你必须使用JSNI。请参阅GWT 2.4 here的文档。
答案 3 :(得分:0)
现在你应该使用JSNI,但也有js互操作。 js interop使事情变得更容易,并且在2.8即将到来js interop将成为常态并且它将被构建到GWT编译器中。他们说在2.7中的js互操作虽然是实验性的。 here's关于它的文档。