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

相关推荐

  • 免费电话你用了吗?

    随着微信电话本1.0.0版本登录苹果和安卓应用商店,这款智能通讯增强软件也引起了一场热议。在这小编也亲自体验一下并与大家分享,欢迎拍砖~ 安装并打开微信电话本,如图: “免费”二字相当醒目,但真的是免费吗?其…

    2014-11-13
  • 用户体验设计专题——前言

    元宵佳节一过,春节假期正式步入尾声,相信大家的工作也已步入正轨。为了感谢大家对我们这个略显晦涩却干货满满的公众号的支持,经过系统梳理,我们归纳总结了9个用户产品设计的基本原理,结合从数千个小流量评估实验中筛选的经典案例予以阐述,在未来两个月的时间里,会逐步分享给大家!废话少叙,步入正题!笼统地说,用户体验(User Experience,简称UX或者UE),是指用户在使用一个产品、系统或者服务时建立起来的纯主观感受。这里我们会关注两个重...

    微信热点 2018-03-02
  • 场景化体验设计的新思路:语音交互

    语音交互在场景化的体验中能发挥更好的效果,是因为语音本身就是一个对话的过程。当你置身于特定场景下时,你的语音指令才具备特殊的意义!当你在骑行的时候,Siri在你耳边提醒你临近会议的准确时间和地点,并为你语音导航,同时为你口述刚刚收到的短信息—所有的动作都没有打断你的骑行运动。第二个倒计时设定40分钟,现在开始倒计时。你的倒计时已经运行,还有9分42秒,想要更改它吗?引导强于记忆。User: Alexa, add milk to the shopping list.
    Alexa: I’ve added milk to your shopping list.
     
    User: Alexa, add eggs to the grocery list.
    Alexa: Eggs added to your shopping list.
     
    User: Alexa put butter on the shopping list.
    Alexa: I’ve added butter to your shopping list.
     
    User: Alexa add cereal to the shopping list.
    Alexa: I’ve added cereal to your shopping list.
     
    User: Alexa put cheddar cheese on the shopping list.
    Alexa: Cheddar cheese added to your shopping list
     
    User: Alexa put sugar, flour and salt on the shopping list.
    Alexa: I’ve added sugar flour salt to your shopping list.

    2017-05-17
  • 想做动效,可是你的需求写清楚了么?

    精美的动画对于提升产品体验有很大帮助,如促进用户理解功能,缓解用户情绪,调动用户积极心理,为产品提供亮点等等。诸如此类的文章相信各位已经看过不少了,不少人已经开始越来越重视动效在产品中的应用了,还没有看过的同学不用急,谷歌官方的动效指南讲解得很详细,建议只看这个就够了,配合一些动画理解起来更容易。说明:

    1.优化直播间分享面板,增加特效

    2.当用户点击分享按钮时(*包括传统直播间主播面板的分享按钮和上方分享按钮,手机直播间的分享按钮*),从下方弹出分享面板,逐个弹出分享icon,并淡入显示分享奖励。

    3.用户关闭分享面板时,分享icon从右到左依次下落淡化消失
    相关参数:

    1.分享面板减速弹出,运动时间225ms
    2.分享icon从左到右依次弹出,运动时间225ms。带有奖励图标的,当对应分享icon弹出后,分享图标淡入显示(时间225ms),第二个图标比第一个迟100ms开始运动

    eg:如图第一个为qq图标,当用户点击分享按钮,分享面板弹出后,qq图标开始弹出(时间225ms),100ms后第二个图标(qq空间)弹出,当qq图标完全弹出时,淡入显示分享奖励图标,时间225ms。
    3.分享icon从右往左依次收回,分享面板收回,所有运动的时间减少30毫秒,如分享面板收回时间195ms,分享icon收回时间195ms。

    andorid端动画曲线采用系统自带:AccelerateDecelerateInterpolator(在动画开始与结束的地方速率改变比较慢,在中间的时候加速)

    iOS端动画采用系统自带:kCAMediaTimingFunctionEaseInEaseOut (在动画开始和结束的时候速度稍慢些)
    具体效果可参考附件视频

    2017-05-08
  • “创造完美的用户体验。” 中国最当红工业设计师 —— 杨明洁

    Designer100是+86设计共享平台推出的中国高端设计师第一推广品牌,致力于设计师推广的全球巡展、设计师大奖、视频计划、沙龙论坛的社会公益项目。杨明洁YANG DESIGN及羊舍创始人福布斯中国最具影响力设计师同济大学及南京大学客座教授融合了德意志逻辑思维与中国人文精神的设计理念,也使得杨明洁成为了包括波音、奥迪、宝马、博世、飞利浦、英菲尼迪、可口可乐等众多国际顶尖品牌的合作伙伴,从眼镜箱包到飞机内舱,从消费电子到交通工具,从茶具...

    2018-02-26
  • 预加载:尝试分析这种自动加载的交互方式

    网站运营者的目的是为了增加阅读量,用户停留时间。而大部分用户一般是比较迷茫的,他们不知道自己想要读什么。

    2017-05-01
  • 设计思考|利用控制感,为用户体验加分

    用户体验的概念一路成长壮大,系统性概述的书籍和理念层出不穷,可执行落地的方法技巧随着技术的进步在不断变换。然而无论概念、环境如何变换,都是让产品通过媒介与人建立关系。所以其研究人性、塑造人类行为的目的却一直未变。本文从人对控制感的喜好出发,通过一些方法来保护用户的控制感或利用控制错觉给用户一些虚拟的控制感,­­­­来保护用户体验或强化用户体验。

    2017-05-01
  • 不止是划条线!移动端UI中常见的视觉分隔设计技巧

    即使是元素与元素之间的分隔方式,都能随随便便用一整篇文章来进行探讨。

    2017-05-18
  • UX设计师们,扔掉那些UX设计工具吧!

    “你以你的方式做你的事,我们想让你以完全相同的方式做你的事,但是是用更少的时间并且和更多的远程的人一起做这件事。““如果产品设计是为在各自职务中被束缚的人们解决问题,那么很多自称产品设计师、UX设计师的人事实上是职业的数字艺术家。他们是艺术家、是装饰上的设计师、是美工,但是不是一个职业的产品设计师……”仅仅是目前服务于我们设计师的技术,是不再会领导我们走向成功的。“我们相信制造降低软件开发门槛的产品是非常有必要的。事实上,我们对这类新的程序非常感兴趣。这可能是人们编写程序的更好方式,一旦诞生就将带来巨大的冲击。构架更合理,语言更精简,但很可能我们会去做同样的事。思考这样一个事情:程序语言接下来会面临什么呢?”

    2017-05-26
  • 用户体验设计中的功能动画

    一位优秀的用户体验设计师能够轻松地解释设计概念中每个决策背后的逻辑。包括信息架构、页面内容结构、流程及假说。动画迟早会被融入线框图中,但在做设计决策或解释它们的时候,就会略显尴尬,因为理由基本上就是“这很酷啊!”或者“这很流行”“多有意思”,这些理由使得设计一开始就毫无说服力。在考虑设计时,我们应该更加深入地研究动画,就像解释其他设计元素那样,有依据地定义动画并解释其目的。→什么是功能动画?功能动画是一种微妙的动画,我们将它嵌入到用户界...

    2018-03-22