私は Sencha Touch で Android アプリを開発していますが、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 ) を調べると、接続コンストラクターが 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) です。