2013-07-25 2 views
3

Попытка переносить код моего PhoneGap на Xcode для отладки в iOS. Использование Cordova-3.0.0.Xcode PhoneGap navigator.connection Undefined

Когда я зову:

navigator.connection.type 

Я получаю 'неопределенными' для navigator.connection.

Я не включил плагин сетевого подключения правильно в свой файл config.xml или что-то еще не так? Да, я включил правильный файл cordova.js специально для iOS. Да, deviceready был уволен.

Обновление: В настоящее время я запускаю это только на iOS-эмуляторе.

Мой config.xml:

<?xml version='1.0' encoding='utf-8'?> 
<widget id="com.app.test" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> 
    <name>Hello Cordova</name> 
    <description> 
     Description 
    </description> 
    <author email="[email protected]" href="http://cordova.io"> 
     Apache Cordova Team 
    </author> 
    <access origin="*" /> 
    <preference name="fullscreen" value="true" /> 
    <preference name="webviewbounce" value="true" /> 
    <plugins> 
     <plugin name="NetworkStatus" value="CDVConnection" /> 
    </plugins> 
</widget> 

Спасибо за вашу помощь!

+1

Удачи в решении этой проблемы? Я получаю ту же ошибку на BlackBerry. – conor

+1

Да, наконец, понял это сегодня. См. Решение ниже. Они обновили настройки конфигурации для iOS и, возможно, также были обновлены для BlackBerry. Проверьте [PhoneGap API Documention for 3.0.0] [http://docs.phonegap.com/en/3.0.0/cordova_connection_connection.md.html#Connection]. – chadiusvt

+0

Приветствия за это. К сожалению, я использую cordova 2.5.0, и это не моя проблема. Спасибо, в любом случае. – conor

ответ

7

Выполнял мои исследования по этому вопросу и, наконец, придумал решение. По-видимому, PhoneGap (Adobe) недавно обновил свою документацию и заполнил множество отверстий, в которые я работал, для Phonegap 3.0.0

1) Для этого с использованием интерфейса командной строки вы должны установить git чтобы иметь возможность запускать эти команды. Получите git here.

2) Они добавили к документации Connection плагина использовать следующий интерфейс командной строки, чтобы добавить плагин к проекту:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git 
$ cordova plugin rm org.apache.cordova.core.network-information 

3) Они обновили декларацию в файле config.xml для следующее (для IOS):

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

Комментарий от ** deavisdude ** _ Решение здесь ничего не исправить для меня. Фактически, я изначально установил эту версию сетевого информационного плагина и все еще получил неопределенную ошибку. Я проверил все и делал это в течение нескольких дней ... Как вы это заработали, и можете ли вы опубликовать рабочий пример? _ – Trisped

+0

@deavisdude Этот пример специфичен для ошибки, возникшей в первые несколько дней, когда Cordova 3.0.0 был выпущен, и документация была исправлена ​​вскоре после этого. Проблема была полностью решена в более поздних версиях PhoneGap, которые я успешно использовал. Более поздние версии определяют команды добавления как (пример): 'cordova plugins добавляют org.apache.cordova.network-information', и нет необходимости вручную редактировать config.xml. Какую версию Cordova/Phonegap вы используете? Это может потребовать новый вопрос для вас. Если вы это сделаете, отправьте ссылку здесь, и я могу помочь вам в этом. Спасибо – chadiusvt

2

Если вы просто хотите знать, если вы подключены или не попробовать использовать navigator.onLine в ваших JS вместо. Работает для меня на IOS 8 & Android 2.3 и не требует никаких плагинов

+0

Хотя это может быть, вы пропустили точку в теме. Этот поток объясняется тем, что навигатор не был определен, и поэтому вы не могли вызвать navigator.onLine в любом случае. – chadiusvt

+2

Возможно, я пропустил точку, но, насколько я могу видеть, OP говорит: «Я получаю« неопределенный »для navigator.connection« не ». Я получаю« неопределенный »для навигатора», так что, возможно, navigator.onLine будет работать для них (или для других людей с аналогичными проблемами). – Mike

+1

Правда, это было так давно, когда я впервые опубликовал этот вопрос, что не могу вспомнить, был ли навигатор нулевым (что, я думаю, это было), или если navigator.connection был нулевым. Вы правы в формулировке ОП, мои извинения. Может быть, navigator.onLine поможет кому-то. – chadiusvt