大家好,这里有很多关于 gwt 离线可能性的帖子。但他们都没有完全回答我的问题。
这里只是一些摘录:
- How to include external Javascript in GWT offline application
- HTML5 Offline GWT APP
- RequestFactory and offline clients
- How to build GWT standalone offline application?
我使用的 GWT、GAE 和 Android 技术摘录:
- 请求工厂
- RPC 请求
- JDO
- Cordova /Phonegap
- 本地存储
- html5 应用程序缓存
那么我现在的问题是什么?
- 当我在没有互联网连接的情况下启动我的应用程序时,它不会加载任何内容。由于没有互联网连接,我收到错误 500。
- 它不会从离线缓存加载 HTML、CSS 和 JavaScript。
我现在是因为我的网络应用程序尝试连接到 www.mypage.com,但没有得到任何响应。
我是否可以从 Android 设备上的本地资源启动页面,如果我在线,则从服务器获取响应;如果我没有任何连接,则从本地存储获取响应?
我尝试使用本地资源(编译的 HTML、CSS 和 JavaScript)来实现它,但在这种情况下,它不会随时连接到来自 google 应用引擎的日期。显而易见的结果:没有数据。
最佳答案
是的,如果您没有连接,您可以从本地存储获取响应。绝对可以。
在扩展 com.google.gwt.core.ext.linker.AbstractLinker 的链接器中,迭代工件并检查它是否是 rpc 代码 (1)。如果是,请将其添加到 list (2) 的网络部分。
然后在您的 rpc 回调中(由于没有网络,该回调将会失败),设置您的 @Override public void onFailure(Throwable catch) { ...}
方法来获取数据从本地存储中获取并从那里继续。
(1) 示例 --
private boolean isRPRCall(EmittedArtifact artifact) {
return (artifact.getPartialPath().substring(artifact.getPartialPath().length() - 3)).equals("rpc");
}
(2) 我的看起来像:
CACHE MANIFEST
file.jsp
/myapp/myapp.nocache.js
[etc. etc...]
NETWORK:
/myapp/34C9362A2B2ED625B4FE3FF8E80A4A60.gwt.rpc
/myapp/586D3102158048D2D56BA386A134648D.gwt.rpc
/myapp/CCA65B31464BDB27545C23C142FEEEF8.gwt.rpc
FALLBACK:
关于java - 适用于 Android 的 GWT/GAE 离线应用程序 - 高级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14751610/