问题标签 [watchos-3]
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 - WatchOS 3 WKApplicationRefreshBackgroundTask didReceiveChallenge
我终于(忽略了在“收到应用程序任务,启动 URL 会话”之后从未见过的示例代码)设法让我的 WatchOS3 代码启动后台 URL 会话任务,如下所示:
但是,我现在看到的问题是我的委托方法
urlSession:task:didReceiveChallenge:
永远不会被击中,所以我无法完成下载。(我还添加了会话级别的 urlSession:didReceiveChallenge: 委托方法,它也没有被击中)。
相反,我立即点击了task:didCompleteWithError:
有错误的委托方法:
“此服务器的证书无效。您可能正在连接到假装的服务器......这可能会使您的机密信息面临风险。”
有没有人得到后台监视更新来处理didReceiveChallenge
在后台 URL 会话期间点击该方法的额外要求?
感谢您提供任何帮助或建议。
swift - WatchOS 3 openParentApplication?
在我的应用程序中,我从 iPhone 与 Apple Watch 以及从 Apple Watch 与 iPhone 进行通信。
对于 Apple Watch 上的 Tableview,当应用程序在 iPhone 上运行时,我会收到来自 iPhone 的数据,一切都很好。
现在我在 Watch App 上实现了一个 Button,并希望触发 iPhone 重新加载数据并将其发送到 Watch。
在 WatchOS 1 中已制作wkInterfaceController.openParentApplication
,但在 WatchOS3 中缺少此方法。
现在我的问题是如何打开 iPhone 应用程序来启动 Datareload?
bluetooth - 当蓝牙耳机连接到 Apple Watch 时,触觉不会在后台播放
我有一个watchOS3
使用触觉通知的锻炼应用程序。它正确设置为运行锻炼会话,并且在后台运行时触觉工作。但是,如果蓝牙耳机连接到 Apple Watch,那么您只能获得触觉振动或触觉的音频提示,具体取决于应用程序当前是显示在表盘上还是在后台运行。
这是我玩触觉的方式:
以下是详细信息:
Apple Watch Nike+ 未与耳机配对:无论表盘是打开还是关闭,触觉和提示音都会激活。钟声响亮而清晰。
Apple Watch Nike+ 与蓝牙耳机配对: 仅当表盘打开、音频铃声关闭时,触觉才会激活。当表盘关闭时,音频提示音打开,触觉关闭。钟声响亮而清晰。
我测试了将 Apple Watch 与 Platronic Backbeat Go 2(2013 年 7 月发布)和 Bose QuietControl 30(2016 年 10 月发布)配对的应用程序。结果是一样的。
任何人都知道这是一个限制watchOS 3
,一个错误,还是我需要做的其他事情?
谢谢,杰夫
sprite-kit - Haptic 在 watchOS 3 的 SpriteKit 中是否有效?
如果我不使用 SpriteKit,这在 watchOS 中有效,我可以感觉到轻微的振动。
但如果我在 SpriteKit 中使用它,会说:
它不起作用,没有点击声,没有触觉反馈。我也尝试了其他 WKHapticType,结果是一样的。任何想法?
background-task - WKWatchConnectivityRefreshBackgroundTask 永远不会在后台触发,但是 WKSnapshotRefreshBackgroundTask
我想从 iPhone 在后台更新我的手表应用程序状态,使用session.updateApplicationContext(applicationContext).
在手表上的应用程序处于活动状态时发送应用程序联系人确实可以正常工作。
当我激活手表上的主页按钮时,手表应用程序会进入后台,handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>)
被调用并WKSnapshotRefreshBackgroundTask
提供 a。
所以我不明白为什么 aWKSnapshotRefreshBackgroundTask
被正确触发,而不是 a WKWatchConnectivityRefreshBackgroundTask
。
Apple 的文档说“<em>当你从配对的 iPhone 接收到后台数据时,系统会在后台启动你的应用程序,实例化一个WKWatchConnectivityRefreshBackgroundTask
对象,并将任务对象传递给你的扩展委托的 handleBackgroundTasks: 方法。”。
但这不会发生,无论是在设备上还是在模拟器上。有什么问题?
编辑:
为了检查可能出了什么问题,我下载了 Apple 的演示项目“QuickSwitch”,可以在此处下载。这是应该处理后台任务的代码:
在那里,同样的事情发生了:
我确实在 if 语句的行中设置了一个断点并执行了应用程序。
当手表模拟器上的主页按钮被按下时,断点到达WKSnapshotRefreshBackgroundTask
。这没关系(见上文)。
但是,如果在 iPhone 模拟器上选择了不同的行,watchOS 不会WKWatchConnectivityRefreshBackgroundTask
像预期的那样安排 a 。毕竟,这个演示项目应该正是演示了这一点。
也许有人可以尝试演示项目并确认这个问题。
怎么了?
ios - 是否可以从 watchOS 3 应用程序唤醒 iPhone 应用程序?
是否可以从 watchOS 3 应用程序唤醒 iPhone 应用程序?
代码的第一部分在 watchOS 2 上就足够了,但即使这两个部分的代码在 watchOS 3 上都不起作用:
初始化:
在另一种方法上:
ios - watchOS 3 上的 reloadTimelineForComplication
在 watchOS 2 中,当用户在 Watch App 中进行一些活动时,我们使用 reloadTimelineForComplication 来重新加载并发症中的数据。但在 watchOS 3 中它不起作用。CLKComplicationServer 找到 activeComplications,但是当我们调用 reloadTimelineForComplication 时没有任何反应。现在如何从 watchOS 应用程序重新加载数据?
ios - 在手表应用程序上传递文件和用户信息的最简单方法从 WatchConnectivity 开始
有一个应用程序需要在手表应用程序激活时共享文件和用户信息字典,但无论 iOS 应用程序是否处于活动状态。触发从 iPhone 到 Watch 的请求的最佳方式是什么?
localization - Is it possible to have in a complication localized text with arguments?
I want to display in a watch complication localized text that contains an argument set at runtime, e.g. „Available: 3“, where "3" should be set at runtime.
On iOS, this is easy: One defines a localized format string and insets into this format the actual parameter, like:
where the Localizable.strings
file contains an entry
In watchOS 3, if one wants to update a complication, one can use
There, if the right complication type is provided, one could choose a complication template, and set some text, e.g. using:
where a file ckcomplication.strings
contains e.g. an entry
In this case, the complication would display „Available“.
The question is, how do I add an actual value, e.g. „3“, to the displayed text?
swift - 在未发送到 iOS 应用程序的手表上点击的本地用户通知操作
我有一个使用 iOS 10 用户通知框架的 iOS 10 应用和 watchOS 3 扩展。本地通知是从 iOS 应用程序安排的,当 iPhone 锁定时显示在手表上,如果我举起 iPhone 并且不响应手表,则在锁定屏幕上显示在 iOS 应用程序上。iOS 通知具有三个后台操作按钮。
如果我在 iPhone 上响应通知,userNotificationCenter(_:didReceive:withCompletionHandler:)
则会正确调用 UNUserNotificationCenter 委托方法。但是,如果我改为点击手表上的某个操作按钮,则不会调用该函数。
根据 Apple 的watchOS 应用程序编程指南,在以下部分Responding to Selected Actions
:
对于后台操作,操作的处理取决于安排通知的位置:对于在 iPhone 上安排的本地通知,后台操作由您的 iOS 应用程序处理,无论哪个设备显示通知。
这没有发生,我不知道为什么。有没有人从watchOS得到这个工作?