问题标签 [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 投票
0 回答
543 浏览

swift - Watch Connectivity sendMessageData 最大数据大小

我使用 WCSession sendMessageData 将图像从我的 iPhone 传输到我的手表。如果图像较小,一切正常。当它们变大时,消息传递失败

消息回复失败。

我假设使用 sendMessageData 发送的数据有一个最大大小,它应该在 ~70kb 左右,但我找不到任何关于此的文档。任何人都可以帮助我,也许可以告诉我是否可以影响数据的最大大小?

提前致谢!

0 投票
3 回答
2580 浏览

ios - How to share data using Watch Connectivity when working with Core Data

In my iOS application I use Core Data to store data and a fetch request to create an array of NSManagedObjects to display in a UITableView.

On the Watch OS I check if WCSession is supported and active a session, then send the iOS application a message from the watchOS extension.

When the iOS application receives the message from the watchOS it should send the array of Objects to the watchOS extension to display the data in the WKInterfaceTable, but I am unsure how to do this. Ultimately what I am trying to achieve is;

  • How to share the array of Objects with the watchOS extension?

  • If the user adds/edits/deletes objects in the array on the Watch, how can we update the data on the iPhone ?

  • Also, the iOS application is embedded within a UITabBarController so does it matter which view controller I communicate with?

Watch OS FavouritesInterfaceController

IOS Application : FavouritesViewController

0 投票
1 回答
78 浏览

ios - 今天对 WatchConnectivity 的扩展支持?

我想在 Today Extension 中显示在 watch OS 2 应用程序上输入的数据,而无需先启动 iPhone 应用程序。

Today Extensions 是否支持通过 WatchConnectivity 框架从 watch OS 2 应用发送和接收日期?

我最初的测试是否定的,但我不能 100% 确定,因为在 Xcode 和模拟器中的测试非常不可靠。

0 投票
1 回答
252 浏览

swift - Swift 2:如何让 iOS 和 watchOS2 应用与 WatchConnectivity 保持同步?

我在 iOS 和 WatchOS 上制作了一个计数应用程序,我希望应用程序能够同步。当我指望 WatchOS 时,iOS 标签上的数字必须与 WatchOS 上的相同,而当我指望 iOS 时,WatchOS 标签上的数字必须与一个 iOS 相同。这两个之一正在工作,当我指望 iOS 时,WatchOS 上的标签正在改变,这意味着它正在工作,但是当我指望 WatchOS 时,iOS 的标签并没有改变。

这是代码:

ViewController.swift

接口控制器.swift

问题出InterfaceController.swift在这部分代码中。

ViewController.swift(iOS)中工作时,那部分代码是:

那么,我可以在InterfaceController.swift (WatchOS) 上使用什么来代替if let message : String = "\(counted)" {我在ViewController.swift (iOS) this上使用的 thisif let message : String = countedLabel.text呢?

有关更多信息,您可以查看此项目:Counting App (<- URL to project)

0 投票
2 回答
1271 浏览

ios - 通过 watchConnectivity 发送一个 NSObject

我正在开发我们应用程序的 WatchOS 2 版本,并坚持我只能发送一个带有函数“updateApplicationContext:(NSDictionary *)”的字符串。

我希望我可以制作一个带有一些变量的 NSObject,以便在这个 NSDictionary 中作为对象发送。几天后,我仍然没有找到解决此问题的方法。无论如何要通过函数发送一个 NSObject 吗?

如果无法发送 NSObject 是否可以发送类似结构的东西?

我的代码如下:

NSObject 只是:

我得到的错误是

发送数据失败,错误:错误域=WCErrorDomain 代码=7010“有效负载包含不支持的类型。” UserInfo={NSLocalizedDescription=Payload 包含不支持的类型。, NSLocalizedRecoverySuggestion=只传递有效类型。}

谢谢!

0 投票
1 回答
445 浏览

ios - WatchConnectivity 不发送数据

我正在使用 WatchConnectivity 将一个简单的字典从 iPhone 发送到 Apple Watch。

在 Apple Watch 方面,为了解决打开应用程序时上下文可能不会排队的事实,最后接收到的数据将保存到 UserDefaults 并在设置我的 WatchKit 表时在队列中没有任何内容时检索。我已经在另一个 WatchKit 应用程序中实现了这一点,一切都运行得很好,但是在这一个数据中,Watch 永远不会接收到数据。

我只在模拟器中尝试过,因为我的应用程序在我的手表上永远旋转并且永远不会加载(加载屏幕看起来像 WatchOs 1 屏幕?)。WatchConnectivity 框架包含在每个产品(扩展程序和 iPhone 应用程序)中。谢谢你的帮助。

这是 iPhone 代码(在 ViewController 中实现):

苹果手表代码:

0 投票
2 回答
176 浏览

ios9 - WatchConnectivity 偶尔工作

我在 WatchOS 2.1 和 iOS 9 上使用 WatchConnectivity 框架时遇到问题。我正在使用 transferUserInfo() 将数据从 iOS 应用程序发送到 Watch 并且它可以工作。问题在回来的路上:当我在用户按下手表视图中的按钮后尝试发送更新时,通信只是偶尔有效。例如,它通常第一次工作,而其他所有时间似乎消息丢失了。我尝试了不同的解决方案(sendMessage、updateContext、ecc),但我总是遇到同样的问题。谁能帮我?这是代码:

//在手表端:

//iOS端:(我在AppDelegate中处理回调)

希望尽快解决问题,非常感谢。

0 投票
1 回答
777 浏览

ios - 在 AppDelegate 中调用 func session didReceiveMessage

如果特定的 vc 在 iPhone 上处于活动状态,用户已经可以在前台发推文(在手表上口述的文本)。

但现在我想更进一步,在后台发送这条推文。因此,用户在手表应用程序中口述文本,即使 iPhone 上的应用程序关闭,文本也会发送推文。

我已将此代码用于定义:

而对于方法:

但它在后台和后台都不起作用。

如何解决?

0 投票
1 回答
292 浏览

ios - 如何仅将 iOS 9 用户的“Watch Connectivity”与仍然以 iOS7 作为最低开发目标的 App 安全集成?

我目前正在开发一个仍支持 iOS 7(最低开发目标)的应用程序,但我要求Watch Connectivity 只为使用 iOS 9 的用户集成。因此我创建了一个名为的单例WatchConnectivityManager,它有一个像这样的私有成员这个。

在 iOS 9 上一切正常,但在 iOS 8 和 7 上,即使我的WatchConnectivityManager单例类定义如下开始,我也完全在上面的行上崩溃了。

任何克服这种情况的帮助将不胜感激。

注意:我可以轻松地在我使用WCSession相关代码的地方执行版本检查。但是有没有办法只在WatchConnectivityManager例实现中集成该检查?

0 投票
2 回答
481 浏览

watchkit - didFinishUserInfoTransfer 成功完成 - 但仍然有优秀的UserInfoTransfers 对象

首先,我使用“transferUserInfo”方法将字典从 iPhone 发送到 Apple Watch:

然后我使用以下委托回调方法“didFinishUserInfoTransfer”来检查传输状态:

在 Apple 文档中,它是关于 didFinishUserInfoTransfer 方法的:

到目前为止一切顺利 - 我明白了。但现在 - 有一些我不明白:

如果输入了 didFinishUserInfoTransfer 并且错误 == nil,那么究竟为什么 session.outstandingUserInfoTransfers COUNT 可以大于零??????

根据 Apple 文档,didFinishUserInfoTransfer 的唯一非错误状态应该是传输结束时!有点它似乎没有结束......为什么?

感谢您对此的任何澄清。

而且,我很高兴有任何关于如何正确使用这 3 种方法的示例代码!(IE

  • session.transferUserInfo(dicty)

  • didFinishUserInfoTransfer

  • session.outstandingUserInfoTransfers)