如何使用JSNI从GWT创建新的Javascript对象?它没有在文档中列出。当我将所有JS移动到.html文件时(但会导致另一个不相关的问题),它会起作用。
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:捕获异常:(ReferenceError)@ com.onix.sdm.client.SDM_Mailer :: createPicker()([]):google未定义
从浏览器控制台:
> 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>
答案 0 :(得分:2)
有许多变量以包名称为前缀。这不仅仅是新对象必须加上前缀,而是所有变量,例如
总的来说,这是一个巨大的痛苦,没有行#等等,但这就是他们付钱给我的钱。var view = new $ wnd.google.picker.DocsView($ wnd.google.picker.ViewId.FOLDERS);
.enableFeature($ wnd.google.picker.Feature.NAV_HIDDEN)