1

我有一个使用远程索引页面的 Android Phonegap/Cordova 应用程序,该页面实现了 html5 缓存,因此可以离线使用该应用程序。一旦用户使用活动连接启动应用程序以填充缓存,这将非常有效,它可以无缝运行,并且在离线时感觉非常原生。

但是我想优雅地处理离线时第一次启动它的人,即当远程页面尚未缓存时。目前它给出了一个找不到页面。

我可以在重定向到远程页面之前检查是否有网络连接,但这意味着即使远程 index.html 已被缓存并且可以脱机使用,他们也必须建立连接才能启动它。

有没有避免找不到默认页面的好方法?理想情况下,我想显示一个对话框,说明用户需要数据连接才能首次打开应用程序,以允许在本地缓​​存远程资产。

4

1 回答 1

1

找到了答案 - 我将此添加到扩展 Droidgap 的主要活动中

 public void onReceivedError( int errorCode, String description, String failingUrl) {
        super.loadUrl("file:///android_asset/www/offline.html");
        return;
 }

在这种情况下,我包含了一个offline.html 文件来显示一条离线消息,并带有一个尝试重定向到远程索引页面的重试按钮。如果 webview 在加载远程页面时遇到问题,它将优雅地回退到本地的 offline.html 页面,直到它可以缓存远程文件。

没有讨厌的 404 页,很好!

于 2013-10-15T23:21:53.647 回答