1

アプリの起動時にデバイスがインターネットに接続されているかどうかを確認しようとしています。私が読んだ限りでは、javascript コードは次のようになります。

function isOnline() {
    var networkState = navigator.network.connection.type;
    if (networkState == Connection.NONE) {
        return false;
    };
    return true;
}

今のところiOSでしか試していません。残念ながら、navigator.network は定義されていません。

config.xml ファイルにネットワーク モジュールを追加する必要があることはわかっています。PhoneGap ページ ( http://docs.phonegap.com/en/3.0.0/cordova_connection_connection.md.html ) によると、これは私が行った方法です。

<feature name="NetworkStatus">
    <param name="ios-package" value="CDVConnection" />
</feature>

<feature name="NetworkStatus">
    <param name="android-package" value="org.apache.cordova.NetworkManager" />
</feature>

私が欠けているものを誰か知っていますか?

4

2 に答える 2

2

これを試してください。

このコルドバ プラグインをここにインストールします。

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

このコードをjsファイルに追加します

document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//

function onDeviceReady() {
    isOnline();
}

function isOnline() {
    var networkState = navigator.connection.type;
    var states = {};
    states[Connection.UNKNOWN] = 'Unknown connection';
    states[Connection.ETHERNET] = 'Ethernet connection';
    states[Connection.WIFI] = 'WiFi connection';
    states[Connection.CELL_2G] = 'Cell 2G connection';
    states[Connection.CELL_3G] = 'Cell 3G connection';
    states[Connection.CELL_4G] = 'Cell 4G connection';
    states[Connection.CELL] = 'Cell generic connection';
    states[Connection.NONE] = 'No network connection';
    if ((states[networkState]) == states[Connection.NONE]) {
        alert('No Internet Connection. Click OK to exit app');
        navigator.app.exitApp();
    }
}
于 2014-04-09T12:20:02.093 に答える