1

大家好,这里有很多关于 gwt 离线可能性的帖子。但他们都没有完全回答我的问题。

这里只是摘录几句:

我使用的 GWT、GAE 和 Android 技术的摘录:

  • 请求工厂
  • RPC 请求
  • JDO
  • 科尔多瓦/Phonegap
  • 本地存储
  • html5 应用缓存

那我现在的问题是什么?

  • 当我在没有互联网连接的情况下启动我的应用程序时,它不会加载任何内容。我收到错误 500,因为没有互联网连接。
  • 它不会从离线缓存中加载 HTML、CSS 和 JavaScript。

我现在是因为我的 webapp 尝试连接到 www.mypage.com,但没有得到任何响应。

如果我在线,我是否可以从我的android设备上的本地资源启动我的页面并从我的服务器获取响应,如果我没有任何连接,是否可以从我的本地存储中获取响应?

我尝试使用本地资源(编译的 HTML、CSS 和 JavaScript)来实现它,但在这种情况下,它不会随时连接到来自谷歌应用引擎的日期。显而易见的结果:没有数据。

4

1 回答 1

0

是的,如果您没有连接,您可以从本地存储中获取响应。绝对地。

在扩展 com.google.gwt.core.ext.linker.AbstractLinker 的链接器中,遍历工件并检查它是否是 rpc 代码 (1)。如果是,则将其添加到清单 (2) 的网络部分。

然后在您的 rpc 回调中(由于没有网络,这将失败),设置您的@Override public void onFailure(Throwable caught) { ...}方法以从本地存储获取数据并从那里继续。

(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:
于 2013-02-07T22:15:42.153 回答