APPLE WATCH 中文手册:通知--有关通知的一些要点

如果您的 iOS 应用支持本地或远程通知,Apple Watch 也会同步显示这些通知。当某个应用的本地或远程通知抵达用户的 iPhone 后,iOS 将会自行判断显示该通知的设备(iPhone 还是 Apple Watch)。对于发送到 Apple Watch 的通知来说,系统首先会暗示用户该通知已经送达。如果用户选择查看这个通知,系统将会首先展示该通知的概览。如果用户选择继续浏览这个通知,系统将会显示其具体信息。借助上述功能,用户可以选择忽略该通知,也可以选择单击某个可用的按钮(如果存在的话)来查看该通知或者启动您的应用。

要支持通知的话,应用其实并不需要面面俱到。系统提供了一个默认通知界面以展示来自通知的提醒信息。然后,应用可以自定义这个通知界面,同时向里面添加自定义图形、内容,甚至商标。

提示:要了解更多关于 iOS 应用是如何支持通知的信息,请参阅 Local and Remote Notification Programming Guide

Short-Look 界面

当用户第一次看通知的时候,系统将会显示这个 Short-Look 界面,图14-1显示了一个大概的例子。Short-Look 界面是一个不可滚动的视图,并且不可以被定制。系统使用一个通用的模板来显示应用名称、图标,以及存储在本地或远程通知消息中的标题。如果用户一直在查看这个通知,系统将会迅速将 Short-Look 界面转变为 Long-Look 界面。

1417058334674328

Long-Look 界面

Long-Look 界面是一个可滚动的界面,它显示了通知的全部内容,以及所有的关联按钮。如果您没有提供自定义的通知界面,那么 Apple Watch将会显示默认界面,里面包括了应用图标、通知的标题,以及提示消息。而如果您提供了自定义的通知界面,那么 Apple Watch 将会显示它。

Long-Look 通知界面分为三个区域:

· 窗扇是一个包含有应用图标和应用名称的区域。窗扇的背景默认情况下是透明的,但是您可以在自定义通知界面中改变它的背景颜色。

· 内容区域包含有即时通知的详细内容。对于自定义界面来说,您可以配置该界面的起始位置,是从窗扇顶部开始,还是在窗扇下面开始。要了解更多关于如何自定义这个区域的内容,请参阅 Custom Notification Interfaces

· 按钮区域包含有一个取消按钮和其他您应用定义的按钮。取消按钮是系统提供的,并且不可以删除它。

图14-2展示了一个包含有两个按钮的Long-Look通知界面示例。

图14-2 Long-Look 通知界面

1417058429623910

单击窗扇区和内容区的任意位置都将启动您的应用。单击任何一个由您应用定义的按钮都将启动 WatchKit 扩展或者 iOS 应用,然后向其传递动作信息。发送给 WatchKit 扩展的是前台动作,而发送给 iOS 应用的是则后台动作。单击取消按钮将会直接关闭这个通知。

欲了解如何制作一个自定义 Long-Look 界面,请参阅 Custom Notification Interfaces

为通知上添加按钮

按钮通过为通知提供封装的动作响应来帮用户节省时间。Apple Watch使用iOS 应用注册的交互通知界面来显示按钮。在 iOS 8 以及更高版本中,应用都需要使用UIUserNotificationSettings 对象来注册它们显示的生成通知对话框。一旦对象创建,应用也同样可以指定自定义通知类别以及其对应的按钮动作。Apple Watch使用这个类别信息来添加相应的按钮到 Long-Look 界面上。

代码列14-1显示了一个方法的部分实现代码,其用来为一个示例应用注册设置及类别。这个方法在containing iOS app中声明,而不是在 WatchKit 扩展中声明,并且它在启动时被 iOS 应用委托调用。这个实现代码展示了“invitation”类别的创建和注册,其包含了接收或拒接会议邀请的按钮动作。

代码列14-1 在iOS 容器应用(containing app)中注册按钮动作

- (void)registerSettingsAndCategories {
    // Create a mutable set to store the category definitions.
    NSMutableSet* categories = [NSMutableSet set];
 
    // Define the actions for a meeting invite notification.
    UIMutableUserNotificationAction* acceptAction = [[UIMutableUserNotificationAction alloc] init];
    acceptAction.title = NSLocalizedString(@"Accept", @"Accept invitation");
    acceptAction.identifier = @"accept";
    acceptAction.activationMode = UIUserNotificationActivationModeBackground;
    acceptAction.authenticationRequired = NO;
 
    UIMutableUserNotificationAction* declineAction = [[UIMutableUserNotificationAction alloc] init];
    declineAction.title = NSLocalizedString(@"Decline", @"Decline invitation");
    declineAction.identifier = @"decline";
    declineAction.activationMode = UIUserNotificationActivationModeBackground;
    declineAction.authenticationRequired = NO;
 
    // Create the category object and add it to the set.
    UIMutableUserNotificationCategory* inviteCategory = [[UIMutableUserNotificationCategory alloc] init];
    [inviteCategory setActions:@[acceptAction, declineAction]
                    forContext:UIUserNotificationActionContextDefault];
    inviteCategory.identifier = @"invitation";
 
    [categories addObject:inviteCategory];
 
    // Configure other actions and categories and add them to the set...
 
    UIUserNotificationSettings* settings = [UIUserNotificationSettings settingsForTypes:
        (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound)
        categories:categories];
 
    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}

要了解如何在 iOS 应用中配置类别和按钮动作的信息,请参阅 Local and Remote Notification Programming Guide

让按钮响应单击动作

当用户在通知界面里面单击按钮时,系统使用在注册过的 UIUserNotificationAction 对象里面的信息,来决定了如何处理这个操作。按钮动作可以在前台处理,也可以在后台处理,并且它可以附带或者不附带用户的认证信息。不过,前台处理按钮动作和后台处理是有一定区别的:

· 前台按钮动作将启动您的 Watch 应用,然后将按下的按钮的 ID 传递给主界面控制器。

· 后台按钮动作将在后台启动 containing iOS app,以让其来处理这个动作。被选择动作的相关信息将被传递给应用委托中的application:handleActionWithIdentifier:forRemoteNotification:completionHandler:application:handleActionWithIdentifier:forLocalNotification:completionHandler:方法。

对于前台按钮动作来说,要记住WKUserNotificationInterfaceController子类并不处理这个按钮动作。选中一个前台按钮动作将启动您的应用,并为您应用的主入口点载入界面控制器。该初始界面控制器负责处理所有按钮动作。这个界面控制器必须实现 handleActionWithIdentifier:forRemoteNotification:方法(如果适用的话)来处理和本地或远程通知相关的按钮动作

原创文章,作者:ioued,如若转载,请注明出处:https://www.iamue.com/6234/

(0)
iouedioued
上一篇 2015-06-15 09:50
下一篇 2015-06-15 09:58

相关推荐

  • Axure制作响应式原型文件,响应式RP

    随大屏幕分辨率普及,网页设计在交互阶段就必须考虑响应式方案,Axure7作为我偏爱的交互设计工具果然也没让大家失望的新增了Adaptive View功能,基于RP(Rapid Prototype)的思想可以以最小工作量制作出直观且基本上…

    2014-12-26
  • 【招聘】阿里、腾讯、网易、百度、亚马逊、德勤、滴滴、京东、华兴资本、去哪儿、蚂蚁金服、特斯拉等

    上海|携程+实习携程运营实习生工作内容 一周内入职1、携程app微领队社交功能“结伴”、“旅友圈”运营(删违规帖+内容运营)2、旅途聚会物料负责、寄送、整理3、旅途聚会新产品冷启动4、聚会产品上货至其他平台(搬砖+运营)5、公用区图片库等内容整理6、大型活动报名信息收集+统计(不定期,非日常)7、临时日常行政工作协助加分项1、熟练excel、ppt、word,书面表达佳2、足够耐心、细心,强责任心3、有办公室实习经验4、可来携程坐班至少...

    2018-04-08
  • 掌握这10招,再也不愁公众号涨粉了!

    都说现在运营公众号非常难涨粉非常难别担心今天介绍10种强大的运营工具/技巧给你帮你解决下面这些问题帐号涨粉、爆文技巧、文章排版图片设计、数据监测、海报营销1运营公举小磊磊免费学习新媒体运营知识年收入上百万的全栈新媒体运营,全平台有10万新媒体运营关注,成百上千个自媒体大佬都是他的粉丝。公众号上有180万字的原创运营知识,教你写文章、涨粉、赚钱、提升运营能力。并且把新媒体知识梳理成了标准化的知识体系,让所有人都能免费学会公众号运营。长按识...

    2018-04-03
  • 真诚的用户体验设计

    不知道身为「用户体验设计师(UX Designer)」的诸位是否也有过和我一样的困惑:初入行时兴冲冲觉得自己就是那个为一切产品用户体验问题负责的「真命天子」,积极主动去搜集反馈访谈用户,可当真正卷起袖子打算为解决这些「体验问题」大干一场的时候,却发现有些无从下手。

    2017-05-26
  • 《用户体验可视化指南》视频讲书(1)

    我们选择了人民邮电出版社2018年出版的《用户体验可视化指南》作为第一本,带着大家啃书。原因是这本书真的非 常 好,好到可以成为用户体验设计和研究领域的大辞典了。作者引经据典,却因为篇幅受限,很多没有详细展开。不知前因后果的读者,因此会错过很多有意思的观点。所以UXREN为你详细拆解《用户体验可视化指南》,每次10-20分钟,3首歌曲的时间,日积月累,透彻理解经典书籍。第1期: 前言《用户体验可视化》前言部分,介绍了为什么会提出共线图(...

    2018-03-27
  • 产品上线了,你咋都不好意思说是你设计的

    对于界面来讲,我们设计师过于关注设计的美观度,而忽略了图片和文字的内容的真实性。而界面内容的真实性相当关键,这往往关乎自己的设计最终能不能高还原度地呈现。

    2017-05-21
  • 为Apple Watch设计时需要牢记的一些诀窍

    “想清楚一点,你的智能手表应用为何存在,既然有iPhone应用。”“设计师:理解用户的体验,精确把握介入时机。”“如果你只能描述你所设计的功能,而不是相对应的时刻,那你还有很多事情要做。”

    2017-06-04
  • 界面设计中的动画原理:可理解的变速过渡效果-深入研究加速和减速

    注:“可读性”是说动画绘制者如何定义动画的精准度,用来清晰而容易地理解正在发生的事情。例如:不可读=不清楚发生的事情很易读=它非常清楚,立刻能懂弹跳背后的物理理论:球刚开始被放开的时候,它有一个相对缓慢的速度。在重力的作用下,球的速度持续增长,直到接触地面的那一刻速度达到最大。地面给球反作用力,使它以几乎相同的速度反弹回去。当球移动时,两种力量作用正在球上 - 反弹的力、想把它拉下来的重力。反弹的力量正在慢慢释放,这使得球随着升高逐渐减低速度,直到它耗费掉所有的反作用力,最终到达反弹的最高点。它在顶部停留一微秒,直到重力把它拉下来,使它像之前一样加速下降。我用言语来描述这句话是有原因的。我们试着将一种自然行为分解为具体的步骤,这样我们就可以重新创造它。注:不要羞于“照搬”大自然。你的观众会更快地与动画关联起来,从而更容易读懂动画。注意:这一术语有可能与其它术语混淆。如果你正在阅读传统的卡通书,例如迪斯尼的《生命的幻象》或《动画师的生存工具》,那么这些书会告诉你,当一个物体开始减速然后加速时,这一过程被称为渐慢(ease-out),因为它的姿态在“缓慢输出”。但是,在软件产业(CSS动画,Adobe Edge等),这一过程被称为渐快(ease in)!我不确定这一不同之处是怎么来的,但是不幸的是,这就是它的形成过程。所以,当你在阅读一篇文章时,而这篇文章把它们把“渐快”称为“渐慢”,那么不要觉得困惑。看一眼你所在的网站你就懂了:D。时间    Y轴的位置(秒) : (像素)—————-0.0  :   00.1  :  34
    0.2  :  68
    0.3  : 102
    0.4  : 136
    0.5  : 170时间    Y轴的位置(秒) : (像素)—————-0.0  :   00.1  :   2
    0.2  :  10
    0.3  :  36
    0.4  :  87
    0.5  : 170注意:你会在软件中看到更多用于设置缓冲的选项,例如二次的、三次的、四次的等等。它们只是缓和程度更高的选择,但是概念是相同的。只需记住——缓和的程度越高,你就会得到更多的缓和度。并不是规则,只是工具(There are no rules. Only tools)- Glenn Vilppu

    2017-06-05
  • 交互干货必收 | App界面交互设计规范

    在上篇《APP界面设计风格》确定下来后,产品经理(兼交互设计)还不用着急将所有的交互稿扔给设计师进行细致的界面设计。在细节设计启动前,拉上设计师和安卓前端开发、ios前端开发一起商议确定设计规范先吧!

    2017-06-04
  • 用户体验与产品价值

    关注一下,更多精彩等着你户体验不等于用户可用性当你局限地将用户体验等同于用户接触UI时的可用性的时候,或者是局限地理解用户体验只是发生在用户使用产品过程中的时候,你就会说:有比它更重要的事情,比如用户价值、产品价值。是的,没错。如果产品没有用,即对用户没有价值,UI的可用性绝对不是最重要且,但是我们仍然得时刻提醒自己,可用性不等同于用户体验,可用性只是用户体验(使用中)的一部分而已。用户体验设计超越产品设计。用户体验设计包括组织开展用户...

    2018-03-03