java - 适用于 Android 的 GWT/GAE 离线应用程序 - 高级

标签 java google-app-engine gwt cordova html5-appcache

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

这里只是一些摘录:

我使用的 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/

相关文章:

java - 两个类可比较 : one generic class, 一个字符频率类与 char 字符

java - GWT-DnD(拖放)布局问题

JavaFx:当 Pane 包含文本时调整大小

java - 分页 - 使用 Spring Data JPA 访问第二页时出现 UnsupportedOperationException

Python 奇怪的类变量用法

java - KeyFactory.createKey() 这是在数据存储中存储数据的正确方法吗

c# - Google Cloud Datastore 请求在我的浏览器中返回错误 400

css - 使用 GWT Bootstrap 显示不确定的复选框

java - GXT : destroying Dialogbox didn't work

java - 将 BigInteger 转换为键