问题标签 [clockkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
321 浏览

swift - 获取用于活动并发症的时间线条目和模板?

我想有条件地在requestedUpdateDidBegin函数中重新加载我的活动并发症,或者实际上告诉ClockKit在当前时间线条目结束前 15 分钟设置下一次检查,但我怎么能在不知道当前并发症的情况下做到这一点?

这是我正在尝试做的事情:

对于当前的并发症,我只能获得家庭,但没有其他信息,如时间线日期或使用的模板。有没有办法得到这个?

0 投票
1 回答
746 浏览

swift - 为 Apple Watch 复杂功能设置 tintColor

我正在尝试为模块化大型复杂功能设置标题文本颜色。

我已经定制了表盘以使用多色。

但是,当我构建并运行此代码时,标题文本颜色仍然是白色(这是默认值)。

为什么颜色不更新?

0 投票
1 回答
27 浏览

swift - Constructing a date for getRequestedUpdateDateWithHandler:

I need to update my watchOS complication at midnight every day.

startOfDay is the beginning of the day (i.e., 12 AM today).

Should I add a day to the start of today like this?

Or should I not add a day to the code, and just do something like this:

0 投票
1 回答
663 浏览

watchkit - Apple Watch 复杂网络请求

我正在创建一个从在线 API 提取其信息的天气应用程序。

我能够在 GlanceController 和 InterfaceController 中成功获取信息。但是,我有点不确定我应该如何处理并发症。我可以在 ComplicationController 类中执行网络请求吗?

如果是这样,我将如何去做?

0 投票
0 回答
88 浏览

ios - 并发症更新导致 iOS 应用程序短暂冻结

我正在更新 Apple Watch 复杂功能。但是当我session.transferCurrentComplicationUserInfo(userInfo)在 iOS 上调用时,我的应用程序会冻结几分之一秒,有时甚至更长。当它在拖动手势或动画期间很明显。

我怎样才能避免这种情况但仍然更新并发症?

附加上下文

这就是我将并发症称为更新的方式

有趣的是,当我对它做同样的事情时,session.updateApplicationContext(userInfo)它不会导致冻结(当然它也不会更新并发症)。

我也试图分析应用程序。不幸的是,在 Profiler 运行时,我无法从手表扩展切换到 iOS 应用。(也欢迎任何提示)有趣的是,我确实设法做到了一次,并记得在时间分析器中将冻结视为零活动一段时间。奇怪的是,我session.transferCurrentComplicationUserInfo(userInfo)在结尾而不是冻结开始时发现了呼叫。令人费解。

我希望其中一些是有帮助的。对我来说,这仍然很令人困惑。我很欣赏任何想法。

0 投票
1 回答
295 浏览

ios - CLKComplicationTemplateUtilitarianSmallRingImage 不显示图像

我在使用CLKComplicationTemplateUtilitarianSmallRingImage中心图像时遇到问题。

我很确定在某一时刻我选择的图像出现在进度环中,但在重新启动几次后,图像消失了。奇怪的是,当我尝试使用它时CLKComplicationTemplateUtilitarianSmallSquareCLKComplicationTemplateUtilitarianSmallFlat图像显示得很好。对于我的生活,我无法弄清楚发生了什么。

这是我正在使用的代码:

更多细节:

  • 不在设备或模拟器上工作。

  • 我的图像是 14pt (28px),我尝试过使用 PDF(单矢量)和 PNG(非隔行扫描)。

  • 与任何CLKComplicationTemplateUtilitarianSmall接受图像的 * 一起工作,除了CLKComplicationTemplateUtilitarianSmallRingImage.

  • 已尝试使用复杂图像集,只是 Apple Watch 和通用目录中的图像......

  • 已尝试不设置其他属性CLKComplicationTemplateUtilitarianSmallRingImage

  • 定位不正确的图像名称时崩溃,所以我知道它会在名称准确时加载图像。

  • 尝试使用 tint color 并更改图像的默认颜色以查看是否是这样。没有。如果它在其他模板中不起作用,会认为它是图像!

不过,我必须做一些不寻常的事情。

0 投票
1 回答
200 浏览

image - 在 clockkit 复杂功能中处理多个图像

我正在尝试为我的应用程序组合一个复杂功能,我希望它可能根据复杂功能条目的内容显示不同的图像,但我不确定如何最好地处理这个问题。

我的手表扩展资产目录中添加了一个复杂功能组,但它似乎只有多个版本中的单个图标的插槽,用于复杂功能系列和设备大小。我假设这个链接到我手表的并发症组的那个仅供占位符内容使用,但是当你自己构建这个模板时,我不确定为什么它与一个组有这个项目设置关联。

由于我想添加大约 10-15 个图标以供选择,我是否需要将多个复杂图像集添加到我的手表应用程序资产中?去年 WWDC 关于创建并发症的视频很早,他们直接使用图像而不是图像集,但对于不同的手表尺寸等,我认为图像集是解决此问题的首选方式。

提前感谢您的帮助,干杯!

0 投票
1 回答
2100 浏览

watchkit - watchOS - 显示并发症的实时出发数据

我有一个公共交通应用程序,其中包含火车的实时出发数据。我想添加一个复杂功能,显示下一班火车的出发时间。

是否可以显示(或刷新)并发症的实时数据?例如,显示“3 min. to station X”。根据来自公共交通 API 的信息,数据每分钟都会发生变化。

我应该如何在 watchOS 2 或 watchOS 3 上完成这项工作?

我知道 ETA 应用程序会显示复杂的旅行时间,但我不确定它们是如何实现的。

0 投票
1 回答
1060 浏览

ios - 如果在执行期间未隐藏钟面,Apple Watch ClockKit Complications 不会更新其时间线条目

有没有其他人注意到并发症条目没有正确更新的问题。我刚刚为我的应用程序添加了一些初始支持,但注意到它们没有显示我期望它们显示的内容。例如,为了方便快速测试这个问题,我会创建一个时间线

然而,我所看到的只是并发症条目 A 停留在 B 和 C 应该显示的时间之后。

我的普通应用程序本身并没有设置为像这样创建定期间隔的并发症,它具有可以由用户设置的计时器的许多方面,但其中一个方面只是允许用户一次启动多个计时器,这一切将在他们选择的用户定义的持续时间后完成。与 iOS 时钟应用程序的计时器不同,您可以以秒为单位指定计时器持续时间,因此 2 个计时器完全有可能在几秒钟内完成,但总体而言,它们更有可能相隔几分钟。此外,不应该添加太多的复杂条目,尽管我的应用程序的其他更复杂的方面可以轻松添加 10 甚至 100 个复杂条目,具体取决于用户在其中设置的任务的复杂程度。不过就目前而言,

我将 Xcode 更新到了最新版本(7.3.2),没有任何改进,并将构建发送到我的实际手机和手表,同样没有改进。直到它确实起作用了。在进一步的调试中,我发现我可以通过简单地降低我的手表(关闭屏幕)然后再次唤醒它来使时间线自动运行,而这一切都是在它正在执行我的时间线的过程中进行的。完成此操作后,时间线将从那时起正常工作。

我创建了一个测试应用程序来演示该问题,它确实完全重现了该问题,因此我将在错误报告中将其发送给苹果。只是想看看有没有其他人注意到这个问题。

此外,当我的测试应用程序执行时,我得到以下日志输出,其中包含一个没有意义的错误

该日志的相关信息如下

您可以在最后的系统错误中看到它使用22:08:46的开始日期,这实际上是我告诉 Clockkit 的是我的时间线的 endDate,而不是startDate。我不确定这是否与我看到的行为有关,因为我在隐藏/显示屏幕后看到相同的错误。

我在我的在线测试应用程序中放了一段关于这种行为的视频。此测试应用程序的详细信息如下

应该在相关模拟器中运行的完整代码在这里可用,相关的复杂模块也在这里列出以供参考。

在我的扩展委托中,我从 iOS 应用程序接收 userInfo 并安排重新加载我的并发症时间线

ExtensionDelegate.m

然后在我的 ComplicationController 中有以下方法来处理事情的复杂性

并发症控制器.m

也许你可以看看你自己的应用程序是否有同样的问题。

我不认为我做错了什么,没有什么会导致这种奇怪的行为,对我来说就像一个错误。不幸的是,它破坏了我的应用程序,该应用程序在某些情况下可以使用非常小的时间线条目,如果用户注意并在测试时保持手表屏幕打开,我宁愿不让它们不起作用。

谢谢你的时间,

干杯

0 投票
1 回答
313 浏览

swift - watchOS - 复杂功能显示以前的条目

我正在创建一个 watchOS 3 复杂功能,显示公共交通服务的出发时间。我创建了一个带有数组的数据模型,该数组包含Train带有stationName(字符串)和departureTime(NSDate)的对象。

我已经实现了 getCurrentTimelineEntry() 方法,并且条目显示在手表上。问题是手表只显示上一个条目。例如,我有以下出发时间:

如果当前时间为 14:10,则手表上仍显示第一个条目(时间为 14:00)。直到当前时间是 14:30,才会显示该条目。如果当前时间是 14:10,我想在手表上查看 14:30 的出发时间。

任何人都可以帮助我或指出正确的方向吗?