我正在开发一个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事件。
任何人都有解决方法的想法或遇到过这个问题?
谢谢!
答案 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