关键词:
参考技术A WatchKit应用程序架构
WatchKit
应用程序是一个运行在
Apple
Watch
中的可执行文件。它包括
storyboard
和渲染屏幕时所需的资源文件。
WatchKit
扩展则是运行在
iPhone
上的可执行文件。包括管理应用程序界面的逻辑代码,以及处理用户的交互操作。
为了程序界面的正常使用,这两部分需要一起运行。用户与应用程序交互的典型步骤如下:
用户与
WatchKit
应用程序交互。
WatchKit
应用程序分析交互情况,并选择将被管理的
storyboard。
WatchKit
与
iPhone
通讯,以运行
WatchKit
扩展。
WatchKit
扩展初始化并创建需要提供给
WatchKit
应用程序
storyboard
使用的对象。
Storyboard
根据
WatchKit
扩展创建的对象,生成
scene,并将其显示到
Apple
Watch
中。
WatchKit
应用程序和
WatchKit
将会共享一些信息,直到用户停止使用
WatchKit
应用程序。此时,iOS
将使
WatchKit
扩展休眠,直到有新的用户交互。
下面的这个图演示了这个流程:
上图中有个重要的概念就是
storyboard
响应用户的操作并配置需要显示的屏幕内容的方法。这归功于
interface
controller对象
(WKInterfaceController的实例),相当于
iOS
中的
view
controller。
与
view
controller
不同的是
interface
controller
不管理屏幕中实际的
view,WatchKit
以透明的方式对
view
进行处理。一般,一个
WatchKit
应用程序会有多个
interface
controller,用来显示不同的数据类型,只不过同时只显示一个罢了。
WatchKit
应用程序的生命周期
一个
WatchKit
应用程序的启动方式有
3
种:
用户点击
Apple
Watch
主屏幕上的图标。
用户与应用程序的
glance
交互。
用户与通知交互。
上面的每种方式都将初始化
WatchKit
应用程序和
WatchKit
扩展。根据上面不同的启动方式,WatchKit
会利用相应的
storyboard
加载
scene,并请求
WatchKit
扩展初始化相应的
interface
controller。
下面的图演示了相关过程:
如图所示,在用户界面中,interface
controller
对象管理着相关交互。当用户与
Apple
Watch
上的应用程序交互时,WatchKit
扩展会运行。一旦用户停止交互或者从程序中退出,iOS
将关闭当前的
interface
controller,并休眠扩展。在用户和
Apple
Watch
之间,这样的交互方式非常简洁,interface
controller
应该是轻量级的,并且快速的执行任务。
下面的图演示了相关过程:
watchkit 应用程序的企业配置?
】watchkit应用程序的企业配置?【英文标题】:Enterpriseprovisioningforwatchkitapp?【发布时间】:2015-05-2121:09:56【问题描述】:我的公司正在使用企业分发配置文件来签署我们的iOS应用,以便轻松分发给内部和外部测试人员。在本地和... 查看详情
在 WatchKit 应用未运行时从 iOS 应用设置 WatchKit 应用的值
...用WCSession的updateApplicationContext方法,但它只在我的WatchKit应用程序运行时有效。我需要将货币汇率从i 查看详情
如何下载 WatchKit? [关闭]
】如何下载WatchKit?[关闭]【英文标题】:HowcanyoudownloadWatchKit?[closed]【发布时间】:2014-11-0405:30:30【问题描述】:有谁知道iOS开发者何时可以下载WatchKit?Xcode6是否会包含一个模拟器以允许在Mac上创建/测试AppleWatch应用?【问题讨... 查看详情
从 iOS 打开 WatchKit 应用程序
】从iOS打开WatchKit应用程序【英文标题】:OpenWatchKitapplicationfromiOS【发布时间】:2015-05-2606:21:45【问题描述】:我想直接从我的iPhone将WatchKit应用程序打开到前台(或Glance,如果可能的话)。我一直在玩它,但没有成功。也许有... 查看详情
如何在 WatchKit 应用中获取当前位置?
】如何在WatchKit应用中获取当前位置?【英文标题】:HowtogetthecurrentlocationinaWatchKitapp?【发布时间】:2015-07-2205:29:38【问题描述】:如果我没记错的话,AppWatch不能自己获取位置,需要向iPhone请求,所以当前位置在iOS端的WatchKit扩... 查看详情
WatchKit 扩展:如何从主机 iOS 应用程序读取数据?
】WatchKit扩展:如何从主机iOS应用程序读取数据?【英文标题】:WatchKitextension:howtoreaddatafromhostiOSapp?【发布时间】:2015-08-2119:33:11【问题描述】:问题背景:宿主iOS应用以10fps的帧速率动态生成UIImage,我只想从WatchKit扩展中检索U... 查看详情
WatchKit 核心数据同步
...:2015-01-0603:20:39【问题描述】:我有一个应用结构如下iOS应用程序将数据写入核心数据,核心数据具有存储在共享应用程序组中的持久存储。WatchKit扩展能够从CoreData中读取由iOS应用编写的数据。我遇到的问题是,如果我的iOS应... 查看详情
Swift 4 刚添加 WatchKit 并不能注册到你的开发团队
...布时间】:2019-01-0420:23:09【问题描述】:我刚刚将WatchKit应用程序添加到我的iOSSwift4应用程序中,然后我尝试运行它并收到此错误:无法注册应用ID“MyApp.watchkitapp.watch 查看详情
使用 WatchKit 2 的 iOS 应用程序中的 WCSession 停止应用程序构建
】使用WatchKit2的iOS应用程序中的WCSession停止应用程序构建【英文标题】:WCSessioniniOSAppusingWatchKit2StopsAppBuilding【发布时间】:2015-08-1819:27:45【问题描述】:我正在尝试使用iOS9中的新WCSession设置我的Watch应用和我的iPhone应用之间的... 查看详情
Apple Watch:一个 Watchkit App 可以与多个 iOS App 通信吗?
...5-06-2519:09:27【问题描述】:我想编写一个可以与多个iPhone应用程序通信的Watchkit应用程序。例如,我们将这个Watchkit应用程序称为“PingPong”。它所做的只是设置一个 查看详情
xCode 排除用于提交的 watchkit 扩展
...:2015-03-1017:33:57【问题描述】:我使用watchkit编写了一个应用程序,并想在Apple发布iOS8.2后提交它。不幸的是,我在***上了解到,目前还不允许提交使用watchkit的应用程序...我确实认为我的应用作为独立的iPhone应用也很不错,并且... 查看详情
WatchKit App 仅返回一些 HealthKit 数据
...itData【发布时间】:2015-09-2314:20:37【问题描述】:我的IOS应用程序和WatchKit应用程序(Xcode7GM)中都运行了以下方法。IOS应用程序返回我所有的跑步锻炼,但是Watchkit应用程序只返回前2次跑步锻炼。有什么想法吗?funcreadRunningWorkO 查看详情
如何创建基于页面的 WatchKit 应用程序?
】如何创建基于页面的WatchKit应用程序?【英文标题】:HowtocreateapagebasedWatchKitapp?【发布时间】:2015-03-0822:39:29【问题描述】:我正在尝试创建一个基于页面的WatchKit应用。当应用程序加载时,我希望在分页视图中有一个带有图... 查看详情
提交 WatchKit 配置错误
...题描述】:目前我尝试使用Xcode6.2向商店提交新应用这个应用程序包括一个WatchKit扩展。一切正常,但在提交/验证时我总是遇到一个错误。在iTunesConnect中,我使用BundleID等创建了一个应用程序另外,如果检查我的开发人员门户,... 查看详情
WatchKit 中的本地通知
...法做到这一点。在iOS中我会这样做:但是无法从Watch共享应用程序....UILocalNotification*notification= 查看详情
WatchKit 上的延迟警报?
...:24:43【问题描述】:我正在为AppleWatch开发一个Swift计时器应用程序。理想情况下,当计时器用完时,它将播放微妙的触觉。问题是,当手表屏幕进入睡眠状态且我的应用位于顶部时,我的应用不再被允许触发触觉。在对此进行研... 查看详情
WatchKit 的社交框架
】WatchKit的社交框架【英文标题】:SocialFrameworkforWatchKit【发布时间】:2015-04-0209:05:46【问题描述】:我想创建一个AppleWatch应用,让用户可以直接从手腕上分享内容。AppleWatch是否有与iOS上的社交框架相媲美的内置社交框架?【问... 查看详情
Apple Watch、WatchKit 和 NSUserDefaults [重复]
...11-2305:20:05【问题描述】:我想既然“WatchApp”是同一个iOS应用程序中的一个捆绑包,我应该能够在我的AppleWatch应用程序中访问NSUserDefaults。不是这样吗?我似乎无法从我的iOS获取NS 查看详情