【发布时间】:2016-03-17 11:26:16
【问题描述】:
Apple Watch (WatchOS 2) 如何检查互联网连接?
在 AFNetworkReachabilityManager 中有:#if !TARGET_OS_WATCH
【问题讨论】:
标签: ios objective-c watchkit apple-watch watchos-2
Apple Watch (WatchOS 2) 如何检查互联网连接?
在 AFNetworkReachabilityManager 中有:#if !TARGET_OS_WATCH
【问题讨论】:
标签: ios objective-c watchkit apple-watch watchos-2
watchOS 2
在 watchOS 2 中,Apple Watch 可以直接与互联网通信。
所以你可以使用:
1- 像 NSURLSession 这样的类来与 URL 通信。
2- 来自社交网络规模的框架
还有许多其他东西可以连接到互联网。
当你使用它们时,会发生两件事:
1- 连接成功,这意味着 Apple Watch 已直接(仅 Wi-Fi)或通过 iPhone(Wi-Fi 或蜂窝网络)间接连接到互联网。然后你就可以使用互联网做任何你想做的事了。
2- 连接失败,这意味着没有互联网,因此您必须防止进一步尝试。您可以使用以下方法来捕获此类错误:
A) 在 Obj-C 中,你可以使用 NSError 并为最后一个参数传递一个 NSError 对象,错误被保存在其中。然后你可以访问它的描述。
B) 在 Swift 中:
*) Swift 2:新的 Do-Try-Catch 结构可以轻松捕获错误,如下所示:
do {
let result = try theFunction()
} catch let error as NSError {
// print error description
}
*) Swift 1:唯一的方法是像 Obj-C 和使用可选项。为了让这个答案更简单,我不再描述这个过时的版本。
watchOS 1
在这个版本的 watchOS 中,连接互联网的唯一方式是通过 iPhone,因为 Apple Watch 本身不能作为互联网通信器,所以你可以使用你需要与 iPhone 通信的功能确定连接的机会,如果成功,您可以尝试前面描述的其他方式。为了让这个答案更简单,我不再描述这个过时的版本。
结论
1- 在 watchOS 2 中,Apple Watch 可以直接与互联网通信。
2- 您可以使用NSURLSession 或其他框架进行在线连接。
3- 如本答案前面所述,在不同版本的 Swift 和 Obj-C 上有不同的方法来捕获错误。
4- 在 watchOS 1 中,连接到 Internet 的唯一方式是通过 iPhone,因为 Apple Watch 不能单独作为 Internet 通信器。这对我们有很大帮助。
更多资源
【讨论】: