java - 如何从 GWT JSNI 创建新的 Javascript 对象?

标签 java javascript gwt jsni

如何使用 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: 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>

最佳答案

有很多变量都以包名作为前缀。不仅仅是新对象必须加上前缀,所有的变量也是如此,比如

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

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

总的来说,这是一个很大的痛苦,没有行 #s 等,但这就是他们付钱给我的原因。

关于java - 如何从 GWT JSNI 创建新的 Javascript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19191790/

相关文章:

java - 通过Java API创建Google Cloud Function : Precondition check failed

java - 将 JLabel 属性添加到匿名变量类型?

javascript - 响应式菜单未关闭项目选择

gwt - 如何将 Spring Roo 和 GET 结合在一起

java - GWT 和 Guava 的问题

java - Java 中 MergeSort 实现中的错误反转和重复数字

java - Hibernate - 时间格式注释

javascript - 使用 Express 和 Ember 启动 Web 应用程序

javascript - 仅获取 JavaScript 对象数组中的特定值

java - Google Web Toolkit 是否类似于 AWT 和 Swing