Apple Watch (WatchKit) 推送动作

Posted

技术标签:

【中文标题】Apple Watch (WatchKit) 推送动作【英文标题】:Apple Watch (WatchKit) push action 【发布时间】:2014-11-26 23:05:11 【问题描述】:

我正在为 Apple Watch 开发一个应用程序,我想使用在启动活动中展示的用户推入屏幕(而不是点击)的操作。你知道这叫什么吗?我如何访问它?

【问题讨论】:

【参考方案1】:

您只能在该操作上显示一个菜单。您在 WKInterfaceController 上使用 addMenuItem 方法。

【讨论】:

【参考方案2】:

您所指的手势称为Force Touch。

可以在第三方应用程序中使用 Force Touch 作为输入法。但是,您无法注册以接收 Force Touch 事件的通知;目前 WatchKit 中没有与 UIGestureRecogniser 等效的东西。

当您的 WatchKit 应用程序的当前屏幕中有一个上下文菜单时,操作系统会在用户启动强制触摸时自动激活它。您可以在 Apple Watch 模拟器中通过单击并按住鼠标来模拟这一点……即使在没有启用上下文菜单的屏幕上,甚至在启动 Force Touch 时,生成的动画也会清楚地显示出来。

要通过 Interface Builder 使用它,您只需:

    在界面生成器中将菜单拖到相关的 Watch App 场景中。 将 1 到 4 个菜单项添加到菜单中,方法是将它们拖到菜单中。 为这些菜单项设置名称和图像。 将这些菜单项连接到 WatchKit 扩展中的 IBActions。

或者,您可以通过 WatchKit Extension 以编程方式设置和清除菜单项,例如 outlined in the WatchKit API documentation。有四个相关的 WKInterfaceController 方法。在斯威夫特:

func addMenuItemWithItemIcon(_ itemIcon: WKMenuItemIcon,
                   title title: String,
                  action action: Selector)

func addMenuItemWithImageNamed(_ imageName: String,
                     title title: String,
                    action action: Selector)

func addMenuItemWithImage(_ image: UIImage,
                title title: String,
               action action: Selector)

func clearAllMenuItems()

在 Objective-C 中:

- (void)addMenuItemWithItemIcon:(WKMenuItemIcon)itemIcon
                      title:(NSString *)title
                     action:(SEL)action

- (void)addMenuItemWithImageNamed:(NSString *)imageName
                        title:(NSString *)title
                       action:(SEL)action

- (void)addMenuItemWithImage:(UIImage *)image
                   title:(NSString *)title
                  action:(SEL)action

- (void)clearAllMenuItems

完整信息在Configuring the Contextual Menu in WatchKit 的 API 文档中。

当你第一次创建这些菜单时,尤其是在 Interface Builder 中创建时,你可能会觉得你肯定错过了一步,因为你不必将菜单连接到相当于力的东西触摸手势识别器,但是当您尝试它时,您会发现它有效。即使在 2015 年晚些时候我们有能力为 Watch 制作原生应用程序之后,这很可能仍将是第三方开发者必须强制触摸的唯一访问权限。

【讨论】:

以及如何为 38mm 和 42mm 指定不同的图像?【参考方案3】:

它被称为上下文菜单。您可以使用 addMenuItem 或在情节提要中添加项目附带的菜单,然后添加其他项目。

【讨论】:

以上是关于Apple Watch (WatchKit) 推送动作的主要内容,如果未能解决你的问题,请参考以下文章

“WatchKit Simulator Actions”不适用于实际的 Apple Watch 设备

Apple Watch: WatchKit 应用程序要点

Apple Watch、WatchKit 和 NSUserDefaults [重复]

WatchKit-Programming-Guide-Apple-Watch开发指南官方翻译及总结

是否可以在实际 Apple Watch 设备上运行 WatchKit 应用程序?

WatchKit WatchOS - Apple Watch 上从未显示定位服务提示