ios - 如何检查 WatchOS 2 是否已连接(可达性)到互联网?

标签 ios objective-c watchkit apple-watch watchos-2

Apple Watch (WatchOS 2) 如何检查互联网连接?

在 AF NetworkReachabilityManager 中有:#if !TARGET_OS_WATCH

最佳答案

watchOS 2

在 watchOS 2 中,Apple Watch 可以直接与互联网通信。

所以你可以使用:

1- 像 NSURLSession 这样的类与 URL 通信。

2- 来自社交网络规模的框架

还有许多其他连接到 Internet 的东西。

当您使用它们时,会发生两件事:

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 中,连接到互联网的唯一方式是通过 iPhone,因为 Apple Watch 不能单独作为互联网通信器。这对我们在这件事上有很大帮助。

更多资源

1- NSURLSession Class Reference

2- NSError Class Reference

3- New Error Handling in Swift 2 Guide

关于ios - 如何检查 WatchOS 2 是否已连接(可达性)到互联网?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36059171/

相关文章:

ios - 在 Swift 中使用 "= {}()"声明类属性的性质是什么?

objective-c - 如何更改按钮上的背景图像,iOS?

iOS:LaunchScreen.storyboard 上的新图像未显示正在更新的应用程序

ios - Xcode .bundle 和 .dylib

objective-c - 实现 Objective-C 的根类需要什么?

没有圆边的 Iphone 自定义 UITabBarItem

ios - Swift - 标签未在 WatchKit 中从委托(delegate)回调中更新

ios - 超过 Apple Watch 应用大小限制

ios - 如何在 Watch App 中显示无限的数据馈送?

objective-c - 动态改变 UITableViewCell 的附属 View 图像