Проверьте подключение к интернету на iOS приложение с Cordova Phonegap 3.3.0 не работает



Я пытался следовать этому руководству по Cordova docs, но оно, похоже, не работает.

Вот мой код:

Я добавил <plugin name="NetworkStatus" value="CDVConnection" /> к config.xml.

И этот скрипт к моему 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; кажется, это вызывает проблему, так как он не запускает следующее предупреждение, я также пытался navigator.connection.type, но то же самое произошло.

Когда я запускаю приложение в Chrome, консоль выдает следующую ошибку:

Uncaught ReferenceError: Connection is not defined 

Кто-нибудь знает, как это решить проблема?

Ура

114   3  

3 ответов:

Я наконец-то решил эту проблему!! - начав все заново с нуля и сделав следующее:

Командная строка:

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
Затем перетащите мои файлы (HTML, Javascript и т. д.) В папку platforms/ios/www/.

Откройте hello.xcodeproj в xcode.

Изменить конфигурацию.xml и добавьте строки:

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

Затем в моем индексном файле я использовал 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>

Затем запустите его в симуляторе iPhone / iPad, и он выведет "yescon", если есть соединение, и "nocon", если а его нет!!

Надеюсь, это поможет!

Проверьте, включена ли ваша Cordova.файл js в html.

<script type="text/javascript" src="cordova.js"></script>

И изменение App/Supporting Files/Cordova.plist вашего проекта.

<key>Plugins</key>
     <dict>
     <key>NetworkStatus</key>
     <string>CDVConnection</string>
</dict>

Это работает для меня:

if(navigator.network.connection.type == Connection.NONE){
//no connection
}else{
//You are connected.
}

Хотя я смотрю в документации и вижу, что есть разница, используя эти строки:

var networkState = navigator.network.connection.type;

Навигатор.сеть.соединение.тип устанавливается в Connection.CELL_2G для всех сотовых данных.

Будет ли это var networkState = Connection.CELL_2G;?

    Ничего не найдено.

Добавить ответ:
Отменить.