Gwt 如何在本机方法中创建JavaScript对象?
我正在使用google maps api,我想创建他们其中一个对象的实例:Gwt 如何在本机方法中创建JavaScript对象?,gwt,jsni,Gwt,Jsni,我正在使用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.g
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”对象是什么——我该怎么做?我以为有特定的语法,但在文档中似乎再也找不到了
谢谢如果您在主机页的其他地方定义了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将自动
初始化为正确引用主机页的窗口和文档