Ext.device.Connection.isOnline() и Ext.browser.is.WebView не работают на Sencha Touch 2.0.1

Я работаю над приложением для Android с Sencha Touch, но Ext.device.Connection.getType() всегда возвращает мне UNKNOWN. Я нашел обходной путь с помощью функции navigator.onLine (из Определить, доступно ли интернет-соединение ). Однако я немного встревожен тем, что эта базовая функциональность не работает так, как описано в документации (http://docs.sencha.com/touch/2-0/#!/api/Ext.device.Connection). Просмотр исходного кода (http://docs.sencha.com/touch/2-0/source/Connection2.html#Ext-device-Connection) Я увидел, что конструктор Connection проверяет Ext.browser.is.WebView, и мне стало любопытно. Выполнение следующей строки регистрирует много, казалось бы, неверной информации:

for (prop in Ext.browser.is) { console.log('Ext.browser.is.' + prop + ': ' + Ext.browser.is[prop]); }

Например:

Ext.browser.is.Safari: true
Ext.browser.is.WebView: false
Ext.browser.is.webview: false

Эти свойства Ext.browser.is неверны? Похоже, что свойства Ext.browser.is могут вызвать множество других проблем в моем приложении, а Connection.isOnline — это всего лишь симптом более серьезной проблемы. Существует ли конкретный метод или код для работы Ext.device.Connection.isOnline()?

Если есть «Ext.device.Device» и «Ext.device.Connection» в требованиях моих приложений и следующие разрешения в AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />   
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Я использую Sencha Touch 2.0.1 (с PhoneGap/Cordova 2.2.0), а тестовое устройство — Samsung Stratosphere (с Android 2.3.6).


person tko    schedule 07.02.2013    source источник