问题标签 [watchconnectivity]

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 回答
1121 浏览

ios - 使用 CoreData 时如何与 Watch OS 2 共享数据以显示在 WKInterfaceTable 中

WatchConnectivity用来尝试将NSManagedObject调用类型的数据发送arrayOfOjects到手表。每个object都有一个名为的字符串属性title

Watch 上的InterfaceController加载并显示并清空表 - 正如预期的那样,因为数组为空,然后当用户请求数据时,它使用didReceiveMessage手机上的方法发送。

我不确定如何将字典数组添加到 objectsArray 以显示在WKInterfaceTable.

有谁知道我如何将数据发送到手表以显示在表格中以进行更改并将它们与手机同步?

苹果手表:

苹果手机

我已经获取了所有对象并存储在数组中。

我需要能够修改对象的属性并将更改保存在 iPhone 上,但 atm 我什至无法发送数据并显示在表中:( 我已经能够在设备之间的字典中发送简单的字符串值,但不能数组或实际数据。

0 投票
1 回答
513 浏览

watchkit - 在后台将数据从 Apple Watch 发送到 iPhone

我正在为 Apple Watch 开发一个应用程序,它可以捕捉心率并将其实时发送到 iPhone。

问题是当显示器休眠时,不再发送数据,当显示器唤醒(通过触摸屏幕)时,它会继续发送/复制数据值。

我试图搜索是否有办法阻止显示器休眠,但我认为你做不到。

我的应用程序如何继续在后台正确收集和发送数据?

0 投票
1 回答
546 浏览

ios - 我应该使用哪种方法将数据发送到 Apple Watch 并返回?

我有一个类似于待办事项列表的应用程序。用户创建他们希望在 iPhone 上完成的任务,并在每天所需的时间提醒他们完成该任务。但是,我不确定哪种传输数据的方法最适合我的应用程序。我希望 Apple Watch 至少能够查看和完成任务。我还希望在任务完成、添加或删除时同时更新 Watch 和 iPhone 上的数据。

我应该使用:

updateApplicationContexttransferUserInfosendMessage或任何其他方法?

0 投票
1 回答
265 浏览

ios - 如何将应用程序放在后台并返回到前台(watchOS和iOS)?

我正在为 watchOS 制作一个旨在接收一些通知的应用程序,发送这些通知的设备是 iPhone。

我已经设法在 Apple Watch 和 iPhone 之间进行通信,并且 iPhone 已经向 Apple Watch 发送消息,Apple Watch 也已经向 iPhone 发送消息。我没有使用该WatchNotification工具。

发生的事情如下,当我运行应用程序时,它会自动在 Apple Watch 中打开,我想要的是应用程序保持在后台运行。当我按下 iPhone 中的按钮时,会向 Apple Watch 发送一条文本,然后(当 Apple Watch 接收到文本时)应用程序才能正常打开。

我会很感激任何帮助。

iPhone 代码

观看代码

0 投票
0 回答
93 浏览

ios - 在 watchOS 2 上使用 transferUserInfo 方法失败和数据丢失

当 Apple Watch 和 iPhone 不在范围内时,我通过发送 5-10 个数据字典transferUserInfo并观察到当设备在 10 分钟内到达范围内时,所有字典都已成功交付。但是,如果我在 15-30 分钟后将 Apple Watch 带入范围内,我观察到很少有记录失败。

我在 Apple Watch 上获得认可为成功 ( ) 的记录很少didFinishUserInfoTransfer,但没有到达 iPhone。是否与WCSession不活动有关?

我已经在applicationDidFinishLaunching我的 watchOS 2 应用程序中激活了会话。

0 投票
1 回答
287 浏览

size - 我可以通过 watchconnectivity 发送的字典的最大大小是多少

我正在通过 iPhone 发送 0.5 mb 大小的字典来观看 os2,但是每次它给出的消息回复都失败了。它在 watchos1 中正常工作。该词典中有 700 个对象。请帮忙。

0 投票
2 回答
800 浏览

ios - 如何使用 sendMessage 将数组发送到 Watch | 错误:无法将“__NSCFArray”类型的值转换为“NSString”

我正在使用WatchConnectivity从 iPhone 向 Watch 发送字符串值数组,但是这样做时出现以下错误。

无法将“__NSCFArray”(0x591244)类型的值转换为“NSString”(0x9f7458)。

我在将字典中的字符串数组发送到手表然后保存数组以在WKInterfaceTable.

有谁知道我哪里出错了以及如何在手表上显示数组?

苹果手机

在收到手表发送数据的第一条消息后,iPhonedidRecieveMessage会执行以下操作。

有一个名为的数组objectsArray,每个对象都有一个名为 的字符串属性title。我为所有值创建了一个新数组,title并使用字典中的数组发送到手表。

手表

更新

提到的错误似乎与将标签文本设置为值时的刷新操作有关。然而,在注释掉这些行之后,数组似乎仍然没有显示在 WKInterfaceTable 中,并且没有任何打印语句输出到控制台。

0 投票
1 回答
1250 浏览

ios - WatchKit 2.0 从手机发送消息观看

如果用户同时打开了 Apple Watch 应用程序和 iPhone 应用程序,我希望能够更新我的 Apple Watch 视图。我知道这里有一个WatchKit 1 问题,但我想知道我是否可以使用 WatchConnectivity 来做到这一点。

在我的 iOS 应用程序中,我发送了一条消息:

但我不断收到错误:

从 iPhone 向 Apple Watch 发送消息,WatchConnectivity sendMessage使用方法是否正确?

0 投票
1 回答
223 浏览

ios - WatchKit:手机向手表发送响应时延迟

我有一个需要实时更新的 watchOS2 应用程序。这是通过电话中的套接字数据完成的。当手机获取数据时,它会将其发布到手表上。但问题是从电话到观看有延迟。我在用 :

但是仍然有几秒钟的延迟。

我尝试使用sendMessage,但这也有同样的问题。当我签入 Apple 文档时,它说数据将在“合适的”时间发送。没有解决方法吗?

https://developer.apple.com/library/prerelease/watchos/documentation/WatchConnectivity/Reference/WCSession_class/index.html

另一个说相同的链接:

https://www.macstories.net/stories/watchos-2-review/2/

0 投票
1 回答
311 浏览

ios - WatchOS WCSession sendMessage 唤醒杀死 iPhone 应用程序的调试和状态恢复问题

我正在尝试向我的应用程序添加简单的 WatchOS 2.0 功能,以允许在手表上触发简单的操作并在我的 iPhone 上的主应用程序中产生影响。所有这些都取决于使用 WCSession 的 sendMessage 方法从手表发送消息

到目前为止一切正常,消息已发送,消息已收到,我的应用程序反应正确。我什至可以让我的应用程序在后台运行,一切似乎仍然正常(我可以在手表上看到 iPhone 是否对消息做出反应,因为 iPhone 将更新手表连接上下文,然后反映在手表上)。我现在只想开始调试边缘情况。

我主要担心的两个问题是...

如果它被杀死,我该如何调试唤醒我的应用程序的系统。我显然无法从 Xcode 生成进程,如果我尝试附加到进程显然为时已晚,理想情况下,我希望能够尽早设置断点以查看事情是如何工作的。更糟糕的是,我可以依靠我猜测的大量日志并查看这些日志。只是想知道是否有尝试调试这种情况的好方法?

最后,关于状态恢复,在 sendMessage 被发送场景运行的这个被杀死的应用程序中会发生什么。IE。

  • 我的应用程序在特定状态下运行应用程序 (A)
  • 我按下主页按钮使应用程序后台运行,当时为我的应用程序状态(A)执行状态编码。
  • 然后该应用程序位于后台。
  • 然后我通过停止在 Xcode 中运行来强制终止该应用程序。
  • 最后,我从手表发送消息,导致系统重新运行被杀死的应用程序。
  • 在这个阶段,我预计会发生状态恢复加载,消息进来并被处理,将应用程序状态更改为状态 B,然后应用程序回到后台。

我的问题是该应用程序在最初后台运行时仍将其状态编码保存在状态 A 中。

在处理完手表连接 sendMessage 后,有什么方法可以强制在后台进行新的状态编码?

当我下一次正确打开我的应用程序时会发生什么,是否会发生状态恢复,这会在处理完手表 sendMessage 后将我们带回到状态 A,它应该处于状态 B。我猜它仍在后台运行,所以无论发生了什么应用程序在后台生成的应用程序应该持续存在,并且不应发生新的状态恢复。但是,如果系统在状态 B 的背景下再次杀死应用程序怎么办。它是否理解这种情况需要新的状态编码来保存新的状态 B,或者它只是杀死应用程序而不做任何事情。如果是这样,那么当我们最终重新启动它时,我们可能会再次回到应用程序状态 A 而不是 B。

顺便说一句,刚刚开始尝试调试这类事情,尽管似乎无法连接我的调试器以用于该系统重新运行我的 iPhone 应用程序的实例。我注意到,当我执行应该唤醒被杀死的 iPhone 应用程序的 sendMessage 时,手表应用程序没有正确更新,即。电话应用程序未完全执行请求的操作。我目前对这个州发生的事情一无所知,但想知道状态恢复是否会阻碍。是否收到消息,唤醒应用程序,尝试对不存在的数据采取行动,因为尚未发生状态恢复,然后发生状态恢复..我第二次从手表发送消息时应用程序行为正确,所以它的好像初始消息唤醒了应用程序但由于某种原因没有 t 正确处理消息。一旦正确唤醒,下一个 sendMessage 将正常处理。

抱歉,我发现文档在 iPhone 应用程序从 sendMessage 调用重新运行后台时发生的情况相当模糊。有人有什么想法吗?非常感谢您的时间!干杯!