Cordova应用程序在离线时在Android上崩溃

时间:2014-06-10 11:10:54

标签: android angularjs cordova

我目前正在为Android / iOs(使用Cordova)构建一个Angular应用。

我遇到了一个问题:应用必须在设备离线时工作。在iO上,当我将设备切换为离线时,它没问题。

在Android(4.1上的真实设备)上,如果我将设备设为离线状态并返回应用程序,则会提示我该应用已崩溃

我不知道在哪里可以找到关于会发生什么的日志,任何帮助都会很棒:)

这是我的config.xml文件:

<?xml version="1.0" encoding="UTF-8"?>


<widget id="fr.menutab.app" version="0.0.1">

<name>App title</name>

<description>Not yet</description>

<author email="dev@callback.apache.org" href="http://cordova.io">
        Author
</author>

<!-- PLUGINS -->
<feature name="Device">
    <param name="ios-package" value="CDVDevice" />
    <param name="android-package" value="org.apache.cordova.device.Device" />
</feature>
<feature name="Console">
    <param name="ios-package" value="CDVConsole" />
</feature>
<feature name="File">
    <param name="ios-package" value="CDVFile" />
    <param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="FileTransfer">
    <param name="ios-package" value="CDVFileTransfer" />
    <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>


<!-- PREFERENCES  -->
<preference name="target-device" value="universal" />
<preference name="Orientation" value="landscape" />
<preference name="Fullscreen" value="true" />   
<preference name="phonegap-version" value="3.3.0" />

<!-- ACCESS CONTROL -->
<access origin="*" />

</widget>

告诉我您是否需要查看更多代码:)

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。发现这篇关于更新到cordova 3.5.0的问题的文章。

http://excellencemagentoblog.com/cordova-3-5-0-update-troubleshooting-android

对我有用的修复程序位于文章的底部:

cordova plugin remove org.apache.cordova.network-information cordova plugin add https://github.com/apache/cordova-plugin-network-information

答案 1 :(得分: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

希望这有帮助。