gpt4 book ai didi

java - 在 GWT 应用程序中加载 Google jsapi

转载 作者:行者123 更新时间:2023-11-30 09:18:12 28 4
gpt4 key购买 nike

我试图在我的 GWT 应用程序中使用 Google 的 javascript API(以使用 google 可视化),但在我的 JSNI 中引用 google 对象时遇到了问题。我收到一个 javascript 错误:“google is not defined”。

我知道有一个用于此的 GWT 包装器 API,但它没有我需要的功能。我遵循了这里的所有建议:use visualization api of google in GWT但我仍然收到此错误。

我已将此行添加到我的 gwt.xml 文件中:

<script src="https://www.google.com/jsapi"></script>

我不确定把它放在哪里,所以我把它加在我的主标签下面。另一个堆栈问题说要添加它以将其添加到我的 HTML 中,所以我假设这就是他们的意思。

这是我调用的精简 native 方法,它会产生“google is not defined”错误:

public static native void nativeJavaScriptFunction() /*-{
google.load('visualization', '1.0', {
'packages' : [ 'corechart' ]
});
}-*/;

我还尝试将 google 引用为“$wnd.google”和“$doc.google”。我使用的是最新版本的 GWT 2.5.1。是否还有其他人在 JSNI 方法中使用和引用了任何 javascript api?

最佳答案

您可以使用 ScriptInjector,而不是在您的主机页面中添加该脚本标记,如下所示:

ScriptInjector
.fromUrl("http://api.elsevier.com/javascript/scopussearch.jsp")
.setCallback(new Callback<Void, Exception> () {
@Override
public void onFailure(Exception reason) {
throw new UnsupportedOperationException("FAILURE to inject Scopus API !!!");
}

@Override
public void onSuccess(Void result) {
System.out.println("Elsevier scopus search API successfully injected...");
}
}).setWindow(ScriptInjector.TOP_WINDOW).inject();

那么您应该能够通过 JSNI 成功使用注入(inject)的 API。

关于java - 在 GWT 应用程序中加载 Google jsapi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18596222/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com