kau*_*kau 2 reachability ios firebase swift
我最近开始研究由firebase提供支持的iOS应用程序.我想知道使用firebase的特殊位置/.info/connected是否是检测用户是否有互联网连接的好方法.我知道这通常是使用apple提供的可达性apis来完成的.以下是我的想法:在app委托中,我将设置这样的东西
func application(application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [NSObject: AnyObject]?) -> Bool {
//Configure some stuff
let connectedRef =
Firebase(url:"https://serengeti.firebaseio.com/.info/connected")
connectedRef.observeEventType(.Value, withBlock: { snapshot in
let connected = snapshot.value as? Bool
let userDefaults = NSUserDefaults.standardUserDefaults()
if connected != nil && connected! {
//User is connected
userDefaults.setBool(true, forKey: "connected")
} else {
//User not connected
userDefaults.setBool(false, forKey: "connected")
}
userDefaults.synchronize() //Force value into NSUserDefaults
}
Run Code Online (Sandbox Code Playgroud)
然后在我需要检查连接的功能中(例如,当他们点击facebook注册按钮时)我查找NSUserDefaults条目
func authWithFacebook() {
let userDefaults = NSUserDefaults.standardUserDefaults()
if userDefaults.boolForKey("connected") == false {
//Segue to a popup saying internet connection is required
} else {
//Continue with signup
}
}
Run Code Online (Sandbox Code Playgroud)
这是检查互联网连接而不是使用可达性apis的有效且可靠的方法.如果没有,它将以何种方式缺乏.
正如杰伊所说:Firebase会.info/connected检测用户是否已连接到Firebase服务器.
用户可能连接到互联网但无法访问Firebase服务器的原因有很多.Firebase停机时间可能就是其中之一,但设备首次连接到互联网和Firebase服务器之间也可能存在各种问题.
但除非您正在替换iOS的"你在互联网上"图标,否则如果应用程序连接到其后端,您的用户可能会更感兴趣.如果您使用Firebase作为应用程序的后端,.info/connected则非常适合检测.
| 归档时间: |
|
| 查看次数: |
1486 次 |
| 最近记录: |