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