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 毫秒),但仍然无济于事。我还尝试在安排连接侦听器中放置一个控制台日志,以确保设备就绪事件正在触发。

有人对解决方法有想法或遇到过此问题吗?

谢谢!

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

是的,@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


文档

连接插件:

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

于 2014-02-21T04:57:33.650 回答
1

在线/离线事件与 Phonegap 的 Connection API 有关。由于 Emulator 不支持与其他 API 类似的 API(例如 Accelerometer、Compass 等),因此不会在 Emulator 上触发此在线/离线事件。

但是如果你在Andriod 4.3.0 以上版本的手机上运行你的应用程序,它就会被执行。- 复制 D:/myphonegap/project_name/bin/project_name.apk 中的 .apk 文件并 - 安装到您的安卓手机上。

于 2014-11-09T07:15:40.470 回答
0

文档没有在线/离线事件。窗户可以。

window.addEventListener

代替

window.document.addEventListener
于 2018-11-06T11:48:11.927 回答