Проверьте подключение к интернету на 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 


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



Ура

624   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;?

Comments

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