Apple Watch开发-获取数据的几种方式

概述

Watch App 一般需要展示外部数据,它可以直接从web服务、CloudKit或其他在线资源访问数据。也可以从配对的iPhone共享数据,但这不是 Watch App 访问数据的主要方式。

直接访问数据

Watch App 应用程序可以直接连接到Web服务和其他在线资源。发出这些请求时,系统可以通过配对的iPhone作为代理、通过已知的WiFi网络或通过手表自己的蜂窝连接来发送数据。

使用URLSession对象发出网络请求,会话的类型取决于 Watch App 需求:

  • 默认会话或临时会话
    如果您的应用程序在前台运行,请使用默认会话临时会话,以避免延迟您的请求。更多信息请看 Making Default and Ephemeral Requests

  • 后台会话
    如果您的应用程序在后台运行(或即将变为非活动状态),请使用后台会话以确保请求完成。后台会话可确保即使您的应用程序变为非活动状态或终止,您的应用程序最终仍会收到响应。但是,系统可能会根据可用资源延迟或推迟后台会话。更多信息请看 Making Background Requests.

与配对的iPhone共享数据

尽管watchOS应用可以安排定期的后台任务来更新其信息,但这些任务受到严格限制-无论是每天可以唤醒应用的次数,还是唤醒应用可以运行的时间。此外,不能保证 Watch App 有后台执行时间,那些存在于表盘小部件的App和扩展坞中的App(如图1和图2所示),系统会给予更高的优先级。

Apple Watch开发-获取数据的几种方式_第1张图片
图1 具有活跃的表盘小部件的App
Apple Watch开发-获取数据的几种方式_第2张图片
图2 扩展坞中的App

如果 Watch App 已安装了配套的iOS App,则可以利用它来从其配套软件中更新 Watch App 。例如,如果用户的iPhone和Apple Watch可以相互通信,请使用 Watch Connectivity 框架将更新从iOS发送到watchOS。

但是,WatchConnectivity并非始终可用。在watchOS 6及更高版本中,用户可能不会为其独立的watchOS应用程序安装配套的iOS App。此外,随着Watch Series 3(GPS +蜂窝网络)的发布,即使相依的应用程序也可能会长时间远离配对的iPhone。因此不能依靠WatchConnectivity作为更新 Watch App 的唯一方法。而是将WatchConnectivity框架用作机会优化方法,而不是提供新鲜数据的主要方法。

Watch App 的几种网络请求方式

当watchOS应用程序进行网络请求时,系统可以通过配对的iPhone作为代理、通过已知的WiFi网络或通过手表自己的蜂窝连接来发送数据。在开发应用程序时,应确保在这三种路由中测试网络请求是否可用。

首先,手表尝试通过配对的iPhone代理请求。手表通过蓝牙与手机通信,共享手机与互联网的连接。连接到配对的iPhone时,控制中心在左上角显示一个绿色的iPhone图标。


Apple Watch开发-获取数据的几种方式_第3张图片

如果手表无法连接到配对的iPhone,但可以连接到已知的WiFi网络(用户以前用手机登录过的网络),则它将使用WiFi网络发送请求。连接到已知网络后,控制中心将在左上角显示WiFi网络。


Apple Watch开发-获取数据的几种方式_第4张图片

最后,如果手表无法连接至已配对的iPhone或已知的WiFi网络,它将使用自己的蜂窝连接发送请求。此路线仅在Apple Watch Series 3(GPS +蜂窝电话)上可用。使用蜂窝连接时,控制中心在左上角以绿色点显示蜂窝连接的信号强度。


Apple Watch开发-获取数据的几种方式_第5张图片

参考资料

watchOS官方文档

你可能感兴趣的:(Apple Watch开发-获取数据的几种方式)