Check internet connection on iOS app with Cordova Phonegap 3.3.0 not working

24,243

I finally solved the problem!! - by starting all over again from scratch and doing the following:

Command line:

sudo npm install -g cordova
cordova create hello com.example.hello HelloWorld
cd hello
cordova platform add ios
cordova platforms ls //This will list ios
cordova plugin add org.apache.cordova.network-information
cordova build

Then drag my files (HTML, Javascript etc) into the platforms/ios/www/ folder.

Open up hello.xcodeproj in xcode.

Edit config.xml and add the lines:

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

Then in my index file I used the JavaScript:

    <script type="text/javascript">
        document.addEventListener("deviceready", onDeviceReady, false);
        // device APIs are available
        function onDeviceReady() {
            if(navigator.network.connection.type == Connection.NONE){
                alert("nocon");
            }else{
                alert("yescon");
            }
        }
    </script>

Then run it in the iPhone / iPad simulator and it will output "yescon" if there is a connection and "nocon" if there isn't!!

Hope this helps!

Share:
24,243
smj2393
Author by

smj2393

Updated on January 29, 2020

Comments

  • smj2393
    smj2393 over 4 years

    I have tried following this guide on Cordova docs, but it doesn't seem to work.

    Here is my code:

    I have added <plugin name="NetworkStatus" value="CDVConnection" /> to config.xml.

    and this script to my index.html:

        <script type="text/javascript">
    
    
            document.addEventListener("deviceready", onDeviceReady, false);
    
            // device APIs are available
            //
            function onDeviceReady() {
                alert("1"); // runs this alert
                checkConnection();
            }
    
            function checkConnection() {
                var networkState = Connection.CELL;
                alert("2"); // doesn't run this
    
                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';
    
                alert('Connection type: ' + states[networkState]);
            }
    
        </script>
    

    var networkState = Connection.CELL; seems to cause the problem as it doesn't run the following alert, I have also tried navigator.connection.type but the same thing happened.

    When I run the app in Chrome the console outputs the following error:

    Uncaught ReferenceError: Connection is not defined 
    

    Anybody know how to solve this problem?

    Cheers