2013-10-04 1 views
1

Как вы создаете новый объект Javascript из GWT с помощью JSNI? Он не указан в документации. Он работает, когда я перемещаю все JS в .html-файлы (но вызывает другую несвязанную проблему).Как вы создаете новый объект Javascript из GWT JSNI?

Java код:

private static native void createPicker() /*-{ 
    var picker = new $wnd.google.picker.PickerBuilder() 
     .enableFeature(google.picker.Feature.NAV_HIDDEN) 
     .... 

Ошибка:

com.google.gwt.event.shared.UmbrellaException: Exception caught: (ReferenceError) @com.onix.sdm.client.SDM_Mailer::createPicker()([]): google is not defined

Из браузера консоли:

> google 
    >Object {picker: Object} 

Ссылка:

http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html

HTML:

<script type="text/javascript"> 
    function loadPicker() { 
     gapi.load('picker'); 
    } 
</script> 
<script type="text/javascript" src="https://apis.google.com/js/api.js?onload=loadPicker"></script> 

ответ

2

Существовали много, много переменных с префиксом имени пакета. Это был не только новый объект, который должен был быть приставкой, но все переменные, а также, как

var view = new $wnd.google.picker.DocsView($wnd.google.picker.ViewId.FOLDERS);

.enableFeature($wnd.google.picker.Feature.NAV_HIDDEN)

Общая большая боль, ни линии №, и т.д., но это то, что они платят мне деньги для.