问题标签 [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 回答
107 浏览

swift - Value of type 'CustomObject' does not conform toe expected dictionary value type 'AnyObject'

I am transferring data from my iOS app to its Watch extension via the application context. I want to send a custom object I've created (named WeatherReport).

However, I get the following error:

Value of type WeatherReport does not conform toe expected dictionary value type 'AnyObject'

I am wondering why I am unable to set my custom object as a value in the dictionary I am trying to pass as the applicationContext.

0 投票
0 回答
64 浏览

iphone - 如何使用 watchos 2 从我的 WatchKit 应用程序打开 iPhone 上的父应用程序?

我正在尝试使用 watchos 2 打开我的 Apple Watch 应用程序的父应用程序。

我试过用

但它不适用于在 watchOS 2 中运行的 WatchKit 扩展。

另外,我尝试了方法 sendMessage:replyHandler:errorHandler:transferCurrentComplicationUserInfo:然后在Appdelegate.m我实现的iphone类中

  • 但是使用这些方法将信息发送到 iphone 应用程序但不打开后台应用程序。

请帮忙。

0 投票
2 回答
957 浏览

ios - 使用 WatchConnectivity (swift) 发送自定义对象失败

我试图将我的 swift 对象从 iOS 应用程序传递到 Watch。但是,我发现它适用于 NSString 等基本类型,但我的自定义对象类型。

我的自定义对象能够转换为 NSData

我已经让我的对象实现了 NSObject 和 NSCoding,效果很好。我可以毫无问题地执行以下操作:

WatchConnectivity 代码适用于 NSString

在 iPhone 中:

带手表:

作品。

我的 WatchConnectivity 自定义对象失败

但是,当我将对象切换到自己的对象时,由于没有调用dataSourceChangedDelegates回调函数而失败。那是:

在 iPhone 中:

带手表:

我尝试过的和我的问题

我试图阅读system.logiPhone 应用程序和 Watch 应用程序,但我找不到任何线索,这是我现在遇到的最大问题。

完整代码是:here (checkout 7f2a72c6004f6580e2a38a2d7fd0ed2cef8a2b2e)

0 投票
1 回答
60 浏览

ios - 当 iPhone 从配对的 Apple Watch 收到消息时本地通知不会取消(有时)

我有一个带有按钮的 Apple Watch 应用程序,可以点击该按钮来记录事件。记录事件时,我想取消应用程序中所有待处理的本地通知。问题是有时本地通知会被取消,而其他时候却不会。

这是来自 Watch 应用程序的代码。当点击按钮时,我会向 iPhone 应用程序发送一条消息:

在 iPhone 上的 AppDelegate 中,我实现了 WatchConnectivity 委托方法来接收消息,这是清除通知的地方。然后,调用 replyHandler 以向 Watch 应用指示消息已成功接收和处理:

即使我看到成功回复到手表,有时本地通知实际上并没有被取消。

这似乎是 iOS 或 watchOS 错误,而不是我可以解决的问题?当应用程序在后台启动时,可能无法保证某些 API 可以访问?(这似乎是使用 WatchConnectivity 发送消息时发生的情况)

0 投票
3 回答
7382 浏览

ios - 类型“UIViewController”不符合协议“WCSessionDelegate”

自从在 Xcode 8(Beta 1)和 Swift 3 上升级以来,我在这一行出现了一个错误:

它说 :

类型“UIViewController”不符合协议“WCSessionDelegate”

这是我的(使用 Xcode 7 和 Swift 2 工作)代码:

此错误也出现在 WKInterfaceController 类中。

0 投票
2 回答
626 浏览

ios - WatchConnectivity 如何在多个 WKInterfaceControllers 之间共享会话?

我有一种情况,我需要在多个 WKInterfaceControllers 之间共享 WCSession。单例方法不起作用,一旦将委托设置为一个类,其他类中的所有委托都将失效。场景:接口A发送和接收数据,根据数据内容,呈现接口B。点击接口B,将请求和接收额外的数据。您将如何在 A 和 B 之间共享 WCSession?

0 投票
1 回答
543 浏览

swift3 - 无法激活 WCSession

我已将我的 Xcode 项目更新为 Swift 3,因此我现在正在使用 Xcode 8。在 Swift 2 中,我可以毫无问题地设置 WCSession 并向手表发送消息。现在在 Swift 3 中,我无法激活会话。调试器说:[WC] __28-[WCSession activateSession]_block_invoke 通知守护进程准备好进入会话状态

这是什么意思以及如何解决这个问题?

PS:在另一个视图控制器中,我使用完全相同的代码发送消息,但它的工作原理。

0 投票
2 回答
1393 浏览

background - WKWatchConnectivityRefreshBackgroundTask example

I want to pass data from my iOS App to my watchOS 3 app using WKWatchConnectivityRefreshBackgroundTask

How do I set up code in my watchOS App to handle the data being transferred?

For example in the past I used this iOS code to send a message from the iOS App and if there was no connection send a context:

I'm not sure how to code the receipt of this data as a background task on the watch.

Can someone provide some example code or post a link? The only Apple example code is not very helpful: https://developer.apple.com/library/prerelease/content/samplecode/WatchBackgroundRefresh/Introduction/Intro.html

Thanks

Greg

0 投票
1 回答
242 浏览

ios - 保持核心数据与多个手表同步

我正在编写一个 iPhone 和 Watch 应用程序。我计划支持将多个手表与手机配对的功能。

iPhone 和 Watch 应用程序都将读取和写入 Core Data 数据存储,我将使用WatchConnectivity它们来保持它们同步(使用transferUserInfo:)。用户将在一台设备上书写/口述某些内容,然后它会出现在另一台设备上。

我正在努力弄清楚如何支持多个手表。鉴于以下情况:

  • 用户正在使用电话/手表A
    • 在一天中,用户添加了 10 个项目
  • 一天结束,他们切换到 WatchB

WatchB 将如何与手机/WatchA 同步?

  • WKSession 会自动重播transferUserInfoWatchA 配对时的通话吗?
  • 我是否需要以某种方式跟踪 WatchB 需要的所有内容并自己重播所有内容?
  • 我是否只使用 API 发送整个 sqlite 数据库transferFile(看起来有点多)?
0 投票
0 回答
1904 浏览

ios - 观看 Xcode 8 Beta 3 中的网络中断

从我的 WatchKit 扩展发送任何类型的 http 请求时,我收到以下错误:

仅当会话可达时才尝试发送消息,此时它就是这样。但是,当我检查会话对象时,我可以看到虽然reachable 为真并且activationState 为2(WCSessionActivationStateActivated),但其他属性(例如paired 和watchAppInstalled)实际上是假的。

事实上,当我在模拟器或设备中使用该应用程序时,错误只是每秒重复发送多次。我不确定发生了什么,但我只是在使用 Xcode 8 Beta 3 时才开始收到此错误。

应用代表:

扩展代表:

接口控制器


我该如何解决,或者至少解决这个问题?