Проверьте подключение к интернету на 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
Кто-нибудь знает, как это решить проблема?
Ура
3 ответов:
Я наконец-то решил эту проблему!! - начав все заново с нуля и сделав следующее:
Командная строка:
Затем перетащите мои файлы (HTML, Javascript и т. д.) В папку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 buildplatforms/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