我正在使用google maps api,我想创建一个对象的实例:
public static final native void test(double lat, double lng) /*-{
var obj = new google.maps.LatLng(lat, lng);
}-*/;
但上述方法不起作用,打印出以下错误:
com.google.gwt.core.client.JavaScriptException: (ReferenceError)
@com.google.gwt.core.client.impl.Impl::apply
(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)
([JavaScript object(4), JavaScript object(3), JavaScript object(6)]):
google is not defined
所以我可能要向GWT解释“google.maps.LatLng”对象是什么 - 我该怎么做?我认为有一个特定的语法,但似乎无法在文档中找到它,
由于
答案 0 :(得分:3)
如果您在主机页面的其他位置定义google.maps,则必须在GWT代码中以$ wnd作为前缀:
public static final native void test(double lat, double lng) /*-{
var obj = new $wnd.google.maps.LatLng(lat, lng);
}-*/;
来自GWT文档:
从JSNI访问浏览器的窗口和文档对象时, 你必须分别将它们引用为$ wnd和$ doc。你的编译 脚本在嵌套框架中运行,$ wnd和$ doc是自动的 初始化为正确引用主页的窗口和文档。