简介
在watch 中,通知是和iPhone 同步的,在iPhone上的APP收到通知的同事,也会默认推送到iWatch 上,基于watch 的穿戴性,对用户来说,它上面的通知信息将比iPhone更及时。
iWatch 上的通知分为两部分:
short-look
short-look的预览界面比较简单,它会将通知发起的APP和主要标题等信息展示给大家,让你一目了然,当用户抬起手,查看这个通知的时候,这个短通知就会转换为long-look通知。短通知的通知界面我们不能够自定义,系统统一为他设计了样式。
long-look
长通知的界面我们是可以进行一定程度上的定义的,并且可以添加按钮等逻辑操作。
在long-look中,界面定义分为三个部分,头标题栏,自定义视图栏和按钮交换区。头部的标题栏我们不能自定义,它是一个半透明的上面有APP图标和名字的横栏。其最下面是我们可以自定义的区域,我们可以再storyboard中拉入文本和图片。
接下来,更加详细的看下Xcode中通知界面的storyboard, 如图:
静态界面
静态UI是必需的,并且是显示通知内容和图像的最简单的方法。动态界面是可选的,可让您自定义通知内容的显示方式。
使用静态通知界面去定义一个简单版本的自定义通知,其目的在于它可以为你的WatchKit extension无法及时配置动态界面时提供一个临时的界面。若你将storyboard 右上角中 “Has Dynamic Interface” 勾选去掉,则通知显示的即为静态通知界面。下图是我随意配置的静态与动态界面:
选中scheme中的红色背景的对象,然后运行,出现静态通知界面:
动态界面
动态通知界面可让您为用户提供更丰富的通知体验。使用动态界面,您不仅可以显示消息,还可以合并附加信息,配置多个标签,显示动态生成的内容等。勾选“Has Dynamic Interface”后,再次运行即出现动态通知界面:
要实现动态通知接口,必须创建WKUserNotificationInterfaceController的子类。通过 didReceiveNotification:withCompletion: 这个函数来传递推送的数据对象。
推送演示案例
这边我将用iOS 10 本地推送消息的方式来演示下,iPhone 和 iWatch 推送功能。
iPhone 相关部分
在 AppDelegate 中加入如下代码:
其中设定为每一分钟,推送一个本地消息。
运行我们的工程,在一分钟之后,我们的iWatch 上就会收到推送消息了,如图:
- 将所配对的手表取消手腕检测功能
- 确保你的iWatch 不在充电
- 确保你的iPhone 在锁屏状态