如何使用WatchKit触发通知

18
WatchKit开发人员指南中,有关于如何呈现自定义通知的说明,并且还提到:

应用程序不需要做任何事情来支持通知。系统提供了默认的通知界面,显示通知中的警报消息。但是,应用程序可以自定义通知界面,并包括自定义图形、内容和品牌。

我可以让本地通知在手机上触发横幅提示,但它们不会在WatchKit应用上发生。我已尝试使用所有目标进行调试:

  1. iOS 应用程序
  2. Watch 应用程序
  3. Watch Glance
  4. Watch 自定义通知

即使手机应用程序在后台运行,当收到本地通知时,似乎都没有触发。我还尝试通过模拟接收后台远程通知来测试此功能。

我希望不必直接调用watchKit控制器的本地/远程通知处理程序。

4个回答

9

我希望我不必直接调用watchKit的控制器本地/远程通知处理程序。

不,你不需要这样做。

答案是XCode目前不支持同时调试Apple Watch和iPhone。这就是为什么你不能将通知从iPhone模拟器推送到Watch模拟器,只有通过*.apns文件进行负载测试才受支持。


2
实际上你是可以的,但不是你想象中的那样。在xCode中使用播放按钮运行WatchKit应用程序。接下来,在iPhone模拟器中启动相应的iOS应用程序。回到xCode并选择Debug -> Attach to Process。在列表的顶部附近,您应该会看到您的iOS应用程序的目标。您可以通过选择控制台窗口上方的名称在调试控制台之间切换。 - anders
它可以工作,但使用Watch Connectivity Framework时消息无法到达。 - OhadM

7

通知基本概念中解释了,iOS决定是在iPhone上还是Apple Watch上显示该通知。

iOS会决定是否将通知显示在iPhone上还是Apple Watch上。

因此,我认为(目前)从应用程序触发特定于手表的通知是无法做到的。

编辑:在8.2 beta版中似乎存在一个错误。

WatchKit已知问题

在iOS模拟器中查看通知时,单击通知图标或正文不会启动相应的Watch应用程序

发布说明


3
为了测试手表通知,您必须首先创建一个新的构建方案。
复制您的手表应用程序方案,在“运行”部分中选择您的自定义通知作为可执行文件。
现在,您可以运行通知方案。
在项目的扩展组中,支持文件下有一个名为PushNotificationPayload.json的文件。
您可以编辑负载文件以尝试不同的通知和类别。 来源

1
我创建这些项目时只有两个目标:
  • [应用程序名称]
  • [应用程序名称]手表应用
编辑手表应用方案可以让我选择另一个可执行文件——特别是那里有一些浏览和通知选项,它们对我很有效。只需选择它,关闭并运行即可。我没有尝试复制目标/方案,以便无需编辑它们,但我不认为这会成为问题。
编辑:实际上,SDK还告诉你要编辑方案

没错,它在“编辑方案”->“观察界面”中 :) 谢谢! - Medhi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接