问题标签 [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.
ios - WatchConnectivity 通过在 iphone 上启动计时器发送手表消息
我创建了一个在 iphone 上运行的计时器应用程序。我希望我们能控制它 iPhone 和 Watch
iPhone 上的控件(播放、停止、重新启动)工作正常,我的仪表显示在手表上。
Watch on the Stop 效果很好,因为对 Start 不起作用,仪表无法打开 iPhone 或 Watch。
也重新开始工作。
如果信息来自手表,我在 iPhone 上的标签更改非常缓慢,但在另一个方向上运行良好,朝向 iPhone 手表
有没有注意到这个问题,是WatchConnectivity相关的问题
谢谢你的帮助
下面是我的代码:
ViewController.swift
接口控制器.swift
ios - watchOS2 and iOS8 connectivity - Swift
For watchOS1 there were several limited, but efficient methods available for sharing data between the watch and the phone - like openParentApp
, AppGroups
and NSUserDefaults
.
With the release of watchOS2 and the WatchConnectivity framework - openParentApp
method was deprecated, AppGroups
and NSUserDefaults
were limited to read-only functionality. Important to note here that WatchConnectivity is supported only by iOS9 devices.
But somehow i see apps on the AppStore claiming to be optimised for watchOS2 while having an iOS8 as deployment target.
Am i missing something? Are there any other methods available for sharing data sufficiently?
ios - 将 Core Data 对象发送到“只读”Apple Watch App
我正在尝试开发一个 watchOS 2 应用程序来配合我的 iOS 应用程序。iOS 应用程序使用 Core Data,而 Apple Watch 应用程序只是一个“只读”客户端并显示来自 iOS 应用程序的数据。
我已经阅读了一些关于管理两个数据存储的内容,但这似乎有点过头了。我只想在启动时将数据传输到手表应用程序,然后在手机发生变化时发送后台传输。
我的问题是我最初如何将此信息发送到手表应用程序?我认为我无法将实际数据对象发送到手表应用程序。我是否需要将对象转换为字典并通过 WatchConnectivity API 发送所有相关信息?
ios - 在启动手机应用程序之前从 iPhone 上获取字典 - WC
我在尝试同步 iPhone 应用程序和 WatchKit 应用程序时遇到了问题。问题是 - 我的 WatchKit 应用程序tableView
附加了来自 iPhone 的数据数组。
我正在使用来自 Watch Connectivity 框架的交互式消息传递
建立会话
向 WatchKit 应用发送消息
这就是我在手表上接收消息的方式
它在一个例外情况下运行良好 - 我无法获取数据数组,直到我在 iPhone 上启动应用程序,这在我的情况下不是解决方案。
关于如何在不打开实际手机应用程序的情况下传输和接收消息的任何想法?
谢谢你。
ios - 在 Swift 中检查协议的可用性
我正在采用 WatchConnectivity,但我仍然支持该库不可用的 iOS7 和 iOS 8。此外,我采用的协议 WCSessionDelegate 也不支持,但这个旧系统。在 ObjectiveC 中,我会使用预处理指令来屏蔽此声明和协议采用,使其免受不支持它们的版本的影响。如何在 Swift 中处理该问题,以使应用程序不会在旧系统上崩溃?
ios - WatchConnectivity - 检测所有控制器中的应用程序上下文变化
我正在尝试从 iOS -> Watch 发送数据,当活动控制器didReceiveApplicationContext
实现时,这工作正常。我可以接收上下文对象并且一切正常。
但是,我不清楚如何didReceiveApplicationContext
“全局”实现,以便 Watch 捕获来自 iOS 的上下文数据更改,而不管用户在哪个控制器上。我有几个用户可以导航的控制器,因此当它们位于没有此委托方法的控制器上时,不会捕获任何数据。
我尝试将此委托方法添加到ExtensionDelegate.m
以尝试全局捕获来自 iOS 的数据,但是当我尝试输出到日志时它似乎没有捕获任何内容。
我假设有一种方法可以实现这一点,而无需didReceiveApplicationContext
在每个 Watch 控制器中实现?
谢谢
ios - 通过 sendMessage 唤醒父 IOS 应用程序不起作用
我的目标是通过以下步骤更新时钟套件的复杂性:
并发症触发 ExtensionDelegate 向 AppDelegate 发送消息以唤醒父 IOS 应用
然后 iOS 应用程序将下载 / XML 解析数据
AppDelegate 将通过 transferCurrentComplicationUserInfo 将数据传输到 ExtensionDelegate
ExtensionDelegate 传递给复杂控制器
当 iOS 应用程序在前台运行/处于活动状态时,这一切都有效。未启动应用程序时它不起作用。
我需要设置什么设置吗?(已经在 info.plist 中设置了后台下载)请在 Swift 中。
添加了附加信息:
在上述情况下(ComplicationControllor 定期/通过 ExtensionDelegate 计划更新请求),通过 WCSession sendMessage 唤醒 IOS 应用程序不起作用。
当我在 Apple Watch 上启动应用程序(ViewDidLoad 中的接口控制器触发 ExtensionDelegate)以唤醒父应用程序时,我看到了同样的问题。
在这两种情况下,消息都在发送,但如果不在前台,则 IOS 应用程序没有反应。
使用上面“自动”请求场景使用的相同代码,我还实现了一个按钮(为了测试目的而手动触发)。如果在手表上按下按钮,它有时会起作用(ViewController 通过 ExtensionDelegate 中的相同功能向 AppDelegate 发送消息,此人唤醒并回复)。我虽然找不到模式。
由于它使用完全相同的 ExtenstionDelegate 函数,就像在所有情况下发送消息一样,我无法理解为什么只有在手动触发响应时才收到/唤醒父应用程序成功。
这里是来自ExtensionDelegate的代码(由 ComplicationController、InterfaceController-ViewDidLoad 以及提到的按钮调用:
和 AppDelegate:
watchkit - 如何在 interfaceController 和 Glance 中发送消息?
我能够在我的方法中实现一个 sendMessage 方法,interfacecontroller
该方法调用 iPhone 并接收最新数据以更新我的 Watch 应用程序的 UI。它运作良好。但是,相同的策略: activiating session
并且sendMessage
在我的GlanceController
情况下并没有取回数据。在网上环顾四周,我的理解是我的手表应用程序可能正在接收消息。
是否有解决此问题的方法,以便我可以在我的 ? 中获得相同的功能Glancecontroller
?
ios - 带有 WatchConnectivity Context 的多手表接口
我创建了一个 iPhone 应用程序(带视图)/手表(带界面),它显示速度、距离和带有播放/暂停、停止和清除的计时器。
我曾经在(发送和接收上下文)之间共享 WatchConnectivity 应用程序上下文数据。到目前为止一切正常,但我会添加另一个页面/界面,在这些页面/界面上与 iPhone 交换 Watch the Context,我根本不知道如何。
如果我打开 Session 2 接口,信息会丢失
这是我当前的代码,我想在第二个界面上切换标签TimeLabel,distanceLabel标签和速度的显示
谢谢你的帮助
ios - 为什么我不能让 WatchConnectivity 正常工作?(视频演示)
当手表被停用和快速重新激活(在 1-2 秒的时间跨度内降低和升高)时,WatchConnectivity 似乎无法更新其可达状态。这在我的设备上可靠地发生。
编辑:这是一个错误的演示:https ://youtu.be/hx7VR8IPxT8
这是一份开放雷达报告#23337218
我编写了一个测试项目来为您提供最简单的错误示例。
和手表扩展
当我放下手表时会发生什么:代表在 1-2 秒内调用 sessionReachabilityDidChange 给出正确的状态。
然后,如果我在 sessionReachabilityDidChange 更新后举起手表,则代表会按预期再次被调用。
但是,如果我在 sessionReachabilityDidChange 更新之前提高手表,则代表只被调用一次,反映了不可到达状态并且无法再次调用以反映手表应用程序的正确活动状态。
这是项目的下载https://dl.dropboxusercontent.com/u/2649851/WatchConnectivityTest.zip
编辑:我应该提到这在模拟器上似乎不是问题。