我想根据手表上收到的不同类型的通知来设置手表应用程序的初始视图控制器。但我不知道该把它放在哪里。
这是iOS应用程序的答案故事板的多个入口点
watchOS 2
WKExtensionDelegate
相当于应用程序委托,您可以:
响应可操作的通知并管理切换。您还可以使用代理来响应生命周期事件,例如激活和停用您的应用
在applicationDidFinishLaunching()
中,您可以调用reloadRootControllersWithNames(_:contexts:)
来指定应用程序启动时显示的页面集。
您也可以在运行时调用reloadRootControllersWithNames(_:contexts:)
来切换视图控制器。
watchOS 1
没有等效的应用程序委派。
要创建自定义的每个通知UI,请为通知类别创建一个具有不同名称的新通知接口控制器。如果需要额外的自定义,请参阅文档中的管理自定义长外观界面。具体而言:
当收到正确类型的通知时,WatchKit会根据几个因素选择静态或动态接口。当动态接口不可用、电源不足以保证显示动态接口,或者您明确告诉WatchKit不要显示动态接口时,WatchKit会自动显示静态接口。在所有其他情况下,WatchKit会显示您的动态界面。做出选择后,WatchKit加载适当的故事板资源并准备界面,如图16-2所示。动态接口的加载过程与应用程序的其他接口控制器的加载过程基本相同,但处理通知有效负载除外,通知有效负载是通知接口控制器特有的。
类别名称应该与推送通知JSON中的category
字段完全匹配,如本例中的INVITE_CATEGORY
:
{
"aps" : {
"alert" : "You’re invited!",
"category" : "INVITE_CATEGORY",
}
}
(如果您使用的是本地通知,而不是推送通知,只需在UILocalNotification
上设置category
属性即可。)
Apple Watch将显示与您的类别对应的通知界面控制器。
另请参阅Notification Essentials。
WatchKit 2中有一个扩展委托。
来自watchOS 2过渡指南
在watchOS2中,WatchKit扩展有一个扩展对象和相应的委托对象,用于管理应用程序的核心行为。WKExtension对象是一个共享对象,只要您的Watch应用程序运行,它就可用。扩展对象具有符合WKExtensionDelegate协议的关联委托对象。