4

phonegap アプリケーション (2.7 を使用) を作成していますが、「オンライン」および「オフライン」イベントで問題が発生しています。ドキュメントに記載されているように機能していないようです。

私のコードは、最初に deviceready イベントを呼び出すことで構成されています。

function init(){
  document.addEventListener('deviceready', arrangeConnectionListener, false);  
}

function arrangeConnectionListener(){
  document.addEventListener('online', onOnline, false);
  document.addEventListener('offline', onOffline, false);
}

$(document).ready(init);

ただし、リスナーの関数はトリガーされていません。オンライン/オフライン リスナーの呼び出しを遅らせようとしましたが (1500 ミリ秒)、それでも効果がありませんでした。また、deviceready イベントが発生していることを確認するために、arrangeConnectionListener 内にコンソール ログを配置してみました。

回避策を知っている人、またはこの問題を経験した人はいますか?

ありがとう!

4

4 に答える 4

3

IOS 6 の Cordova 3.1 で同様の問題に直面しました。ドキュメントには明確に記載されていませんが、最初に Connection プラグインをインストールしてください。インストールが完了したら、イベント ハンドラーをセットアップできます。

    document.addEventListener("deviceready", onDeviceReady, false);
    document.addEventListener("online", onOnline, false);
    document.addEventListener("offline", onOffline, false);
于 2013-11-26T10:58:59.277 に答える
2

はい、@Origitは正しいです。十分に文書化されておらず、オンライン/オフライン イベントを使用するには、次のことを行う必要があります。

1) 「接続」Phonegap プラグインを追加します。

$ cordova plugin add org.apache.cordova.network-information

2) config.xml と AndroidManifest.xml を変更します。

(in app/res/xml/config.xml)
<feature name="NetworkStatus">
    <param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />
</feature>    

(in app/AndroidManifest.xml)
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

3) 上記で説明したように、オンライン/オフライン イベントを使用する

4) Android などの新しいビルドを作成します: cordova build android


ドキュメント

接続プラグイン:

http://docs.phonegap.com/en/3.3.0/cordova_connection_connection.md.html#接続

オンライン/オフライン イベント:

http://docs.phonegap.com/en/3.3.0/cordova_events_events.md.html#online

于 2014-02-21T04:57:33.650 に答える