只有Android上没有Internet连接时,PhoneGap应用程序才会停止

时间:2014-06-19 16:27:55

标签: android cordova

我们已使用

在Phonegap 3.5上创建了一个应用
  • 设备插件

  • 网络状态插件

  • iOS-Sim插件。

本质上有一个RSS阅读器可以通过本地设备上的WebSQL进行保存。

该应用可在iOS和Android 模拟器以及 iOS设备上完美运行。 但是,当没有可用的Internet连接时,它会在Android设备上崩溃。

我们得到的错误信息是:

  

不幸的是[appname]已停止。

我们使用了aLogcat,但它甚至没有将应用程序识别为进程。

我们如何调试设备本身?在模拟器上它似乎工作正常。


更新:

我们清理已安装的Cordova 3.4,我们创建了一个除插件外的空项目:

  • 设备插件
  • 网络信息插件
  • Splashscreen插件

在模拟器上运行应用程序仍然可以正常运行 在具有Wi-Fi连接的Android设备上运行应用程序很好

在没有互联网连接的设备上运行应用程序会弹出几秒钟的白屏,然后显示错误消息:

  

不幸的是[appname]已经停止了。

1 个答案:

答案 0 :(得分:1)

尝试离线事件:

当应用程序脱机并且设备未连接到Internet时,将触发此事件。

document.addEventListener("offline", yourCallbackFunction, false);

当先前连接的设备丢失网络连接时,将触发脱机事件,以便应用程序无法再访问Internet。它依赖于与Connection API相同的信息,并在connection.type的值变为NONE时触发。

应用程序通常应该在deviceready事件触发后使用document.addEventListener附加事件侦听器。

示例:

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">

// Wait for device API libraries to load
//
function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// device APIs are available
//
function onDeviceReady() {
    document.addEventListener("offline", onOffline, false);
}

// Handle the offline event
//
function onOffline() {
}

</script>

来源链接:http://docs.phonegap.com/en/3.1.0/cordova_events_events.md.html#offline