phonegap离线/在线活动无法正常工作

时间:2013-07-26 01:35:34

标签: javascript cordova listener

我正在开发一个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毫秒),但仍无济于事。我还尝试在arrangeConnectionListener中放置一个控制台日志,以确保触发deviceready事件。

任何人都有解决方法的想法或遇到过这个问题?

谢谢!

4 个答案:

答案 0 :(得分:3)

我在IOS 6上面临与Cordova 3.1类似的问题。虽然文档中没有明确提及,但首先安装Connection插件。安装完成后,您可以设置事件处理程序。

    document.addEventListener("deviceready", onDeviceReady, false);
    document.addEventListener("online", onOnline, false);
    document.addEventListener("offline", onOffline, false);

答案 1 :(得分:2)

是的,@ Orijit是对的。 它没有很好的文档记录,为了使用您需要的在线/离线事件:

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


DOCS

连接插件:

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

在线/离线活动:

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

答案 2 :(得分:1)

在线/离线事件与Phonegap的Connection API相关。 由于Emulator不像其他API那样支持此API(例如Accelerometer,Compass等) 因此,这个在线/离线事件不会在模拟器上触发。

但如果您在版本超过4.3.0的Andriod手机上运行您的应用程序,它将被执行。 -copy中的-copy .apk文件:/myphonegap/project_name/bin/project_name.apk和 - 安装在你的手机上。

答案 3 :(得分:0)

文档没有在线/离线事件。 Windows。

window.addEventListener

代替

window.document.addEventListener