2011-12-21 57 views
0

有沒有使用JSNI和JSOT(JavaScript覆蓋類型)將JavaScript常量映射到自定義java類型的方法?引用GWT代碼中的Javascript常量

例子:

我映射谷歌地圖V3的JavaScript API來GWT且有MapTypeId常數。我想在我的javacode中將TERRAIN常量(這是一個JavaScript字符串)引用爲MapTypeId對象(這是一個POJO而不是java.lang.String)。到目前爲止,編譯器說它無法將JavaScript字符串映射到我的自定義類型。

回答

0

我做的唯一工作就是將字符串常量包裝在純JavaScript對象中,並將其映射爲啞覆蓋類型。 GWT的java-to-js編譯器可以將它強制轉換爲我強類型的MapTypeId。

public static native MapTypeId getHybrid() /*-{ 
     return { value : $wnd.google.maps.MapTypeId.HYBRID }; 
    }-*/; 
0

將外部腳本加載到HTML主機頁面中,您將在JSNI中將其引用爲$wnd。我不知道地圖API,但我猜$wnd.MapTypeId應該可以工作。