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 和 Google Analytics 不起作用
MoPub“onInterstitialFailed”adListener 在离线时不起作用