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

相关推荐

  • F型浏览模式:设计一个良好的视觉层级结构

    本文将引导您了解F型内容布局的原理,它是如何工作的,以及如何应用到设计中?

    2017-05-03
  • UED建筑大师过大年,喜气洋洋温暖了留守娃的心田

    当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放世界上最美的花水木年华 - 世界上最美的花编者按:2018年1月19—21日,UED设计年会系列活动在江苏省宿迁市成功举办,共议如何在当下中国,以设计、文化、艺术的力量引领城乡发展。年会系列活动包含“设计·文化·艺术引领下的城市发展和乡村振兴”高峰论坛、第四届全国设计院院长交流会、UED建筑大师过大年等诸多精彩环节。路人甲听说你们也去现场啦?是的呢,我们是带着山里小朋友的心愿去的...

    2018-02-02
  • H5可能会死,但总有人用它带来惊喜

    天猫这个双11邀请函能够让圈内人产生好感,是不是也从侧面印证了这个H5的体内是具有爆发能量的?

    2017-05-16
  • 用户体验之旅-开篇

    设计菜会有啥?设计菜主要针对用户体验的方方面面进行分享。也会适当分享行业的一些资讯。主要为了沉淀,不追求快节奏,慢下来去思考去沉淀是设计菜的宗旨。没有商业目标~没有商业目的~欢迎围观和点评。欢迎━(*`∀´*)ノ亻留言及分享!谢谢!图片来自于:pinterest

    2018-04-27
  • 用户体验很重要,外卖小票了解一下

    失恋了,今天很丧,老板给我画一个小猪佩奇好吗?这个要求是四川资阳的一个女孩子点外卖时,在订单上给店主留的言。没有想到,店主竟然答应了。1当顾客在向外卖商家提需求时他们究竟要的是什么?不久前,一个在外卖小票上画画的帖子在网上刷了屏。原来,四川资阳一女子失恋点外卖要求画小猪佩奇,店主竟然答应了。据店主回忆,“大概在下午4点的时候,店里接到订单,在备注栏中,顾客称‘失恋了,今天很丧,老板给我画一个小猪佩奇好吗?’ ”为了安慰失恋的顾客,王女士...

    2018-03-26
  • 【产品分析】微信拼手气红包的贪嗔痴

    春节期间火爆的“拼手气”红包,让用户疯狂点击拼手速网速,拼rp看金额,每一个环节都深深戳着用户的G点,高潮迭起。“拼手气”就是拼人品,那么,最佳手气者是不是有机可循呢?微信红包这样的设计目的在何处? Aaron毛…

    2015-03-05
  • 精髓干货!一组精挑细选的用户体验设计网站和书目

    精髓干货!一组精挑细选的用户体验设计网站和书目 学校可以为你传授很多知识,但是有些职业学校教不来,产品经理、用户体验设计师、交互设计师、程序员鼓励师这样的职业都在此列。这样的职业通常都有几个显著的特性…

    2015-11-14
  • 分身乏术?来学学交互设计的优先级判断与排期协同

    在被密集需求轰炸(需求本身都具备一定合理性,不包括那种应该拒掉不接的需求),同时自己还有一堆想自发驱动去做的事情时,交互设计师该如何进行合理的设计优先级判断,分解需求排期推进呢?来看今天的实战经验!

    2017-05-23
  • 如何用axure参与团队项目

    1、下载安装axure破解版,可以去axure.com下载。这里为了方便大家,分享个人的百度云盘资源,链接:https://pan.baidu.com/s/1o9qFOyY 密码:hodp2、下载File Zilla,File Zilla从百度上搜索即可下载,这里不需要多言,以下主要讲讲如何配置File Zilla。Ctrl+S创立本地站点,输入主机IP地址,协议默认是SFTP,输入团队用户&密码,点击连接,进入团队项目。3、在团队项目...

    2018-03-15
  • 国内11个HTML5平台的星级评测

    本文以HTML5工具专业性为主要指标,不以名气论高低,内容多以企业网站介绍为依据,辅以使用体验。四个指标,功能是H5工具使用的基础,模板属于工具适用性的象征,定制服务能体现平台的生态性,易用度则是用户友好范畴。

    2017-05-30