phonegap 离线/在线事件不起作用

Posted

技术标签:

【中文标题】phonegap 离线/在线事件不起作用【英文标题】:phonegap offline / online event not working 【发布时间】:2013-07-26 01:35:34 【问题描述】:

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

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

谢谢!

【问题讨论】:

您在文档中尝试过他们的示例吗? docs.phonegap.com/en/1.0.0/… 是的。不过还是不行。 :( 您使用的是什么设备?我还链接到一个非常旧的版本我的意思是这个one 虽然它可能没有什么区别 我正在运行一个 ios 模拟器。昨天虽然我在 amazon kindle fire、Ipad2 和 Galaxy Tab 设备上进行了测试,是的,仍然无法正常工作。现在对我的代码进行一些更改后,它可以在模拟器上运行。我将尝试先在 adobe builder 中编译它,在设备中进行测试,然后告诉你会发生什么。 从cordova/phonegap 3+开始,当您安装网络插件phonegap plugin add org.apache.cordova.network-information时启用。完成此操作后,您可以使用html5 online/offline events +1 Orjit 【参考方案1】:

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

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

【讨论】:

【参考方案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

【讨论】:

这是cordova plugin add,不是cordova plugin rm【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

window.addEventListener

而不是

window.document.addEventListener

【讨论】:

以上是关于phonegap 离线/在线事件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap 事件在 iPhone 中不起作用

Phonegap 和 Google Analytics 不起作用

MoPub“onInterstitialFailed”adListener 在离线时不起作用

AngularJS 中的移动后退按钮与 Cordova/PhoneGap 不起作用

JLabel 中的刷新图像不起作用

在花名册列表中添加用户不起作用