我正在GWT(mapfaire.com)中编写一个使用Google Maps API 的应用程序,我想使用实用程序库.为库编写JSNI包装器不是问题,但是如何确保编译器将JS"烘焙"到应用程序本身,而不是通过模块脚本单独下载?
您可以为JavaScript资源定义ClientBundle,如下所示:
public interface JsResources extends ClientBundle {
final JsResources INSTANCE = GWT.create(JsResources.class);
@Source("myAwesomeJavaScript.js")
TextResource myAwesomeJavaScript();
}
Run Code Online (Sandbox Code Playgroud)
并使用ScriptInjector将其包含在您的应用程序中:
ScriptInjector
.fromString( JsResources.INSTANCE.myAwesomeJavaScript().getText() )
.inject();
Run Code Online (Sandbox Code Playgroud)
小智 6
在gwt 2.4中添加了ScriptInjector http://gwt-code-reviews.appspot.com/1451818/
ScriptInjector.fromUrl("http://example.com/foo.js").setCallback(
new Callback<Void, Exception>() {
public void onFailure(Exception reason) {
Window.alert("Script load failed.");
}
public void onSuccess(Void result) {
Window.alert("Script load success.");
}
}).inject();
Run Code Online (Sandbox Code Playgroud)