3Dtouch

使用3D Touch功能的可以在主界面添加应用的快捷入口. (Home Screen Quick Actions )

  • 这个功能是通过主屏幕的应用Icon,使用3D Touch呼出一个菜单,进行快速定位应用功能模块相关功能的开发。

  • 快捷标签最多可以创建四个,包括静态的和动态的。如果同时设定,会优先显示静态的.(app上线后 会自动多一个'分享' 是苹果自动加的 不用做任何处理.也就是说其实最多是五个标签,但是最后一个固定为'分享')

  • 静态的可以在程序不打开的情况下显示,动态的必须在程序至少打开一次以后显示.

  • 动态添加的可以动态删除,静态的不可以.

添加方法

系统提供了两种屏幕标签,分别是静态标签和动态标签。

  • 静态标签

    静态标签是我们在项目的配置plist文件中配置的标签,在用户安装程序后就可以使用,并且排序会在动态标签的前面。

    在info.plist文件中添加键值(系统没有提示,只能手动输入) UIApplicationShortcutItems

相关key介绍

key

描述

必填

UIApplicationShortcutItemTitle

标签的标题

YES

UIApplicationShortcutItemType

区分与其他快速选项的分类

YES

UIApplicationShortcutItemSubtitle

标签的副标题

NO

UIApplicationShortcutItemIconType

Icon类型

NO

UIApplicationShortcutItemIconFile

Icon文件(定义以后type无效.不定义,根据type会给系统的icon.只定义这个key但是没有值默认是个点,都不定义没有图标)

NO

UIApplicationShortcutItemUserInfo

信息字典(用于传值)

NO

  • 动态标签

    动态标签可以更加灵活的添加标签.比如某些功能只有用户登录以后才能使用,那么可以在用户登录之后再添加这个标签,在退出登录时删除这个标签.动态添加的标签不会影响静态标签的显示和排序,而且显示时,会自动排在静态标签之后,如果静态标签已经>=4,不会显示.

相关类:

UIApplicationShortcutItem 3D Touch标签的类

UIMutableApplicationShortcutItem 可变的3D Touch标签的类

UIApplicationShortcutIcon 标签中图片Icon的类

//创建
UIApplicationShortcutItem * item = [[UIApplicationShortcutItem alloc]initWithType:@"two" localizedTitle:@"第二个标签" localizedSubtitle:@"戳我" icon:[UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypePlay] userInfo:nil];
// 添加
[UIApplication sharedApplication].shortcutItems = @[item];
//当前已有的标签
//NSArray * array = [UIApplication sharedApplication].shortcutItems;

为了不重复添加标签,可以通过获取当前已有的标签来判断是否应该添加.另外也可以通过这个array删除指定的动态标签,而不是删除所有.

响应标签的行为

当我们通过标签进入app时,就会在AppDelegate中调用这样一个回调,可以通过获取shortcutItem的 type 和 userinfo 来进行相关逻辑操作。

-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler

如果我们不是在后台,而是直接打开的应用.可以在 didFinishLaunchingWithOptions 中来响应快速进入事件,做一些处理.

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIApplicationShortcutItem *item = [launchOptions valueForKey:UIApplicationLaunchOptionsShortcutItemKey];
}

通过这个功能我们可以快速进入app的指定界面.比如微信的扫一扫,微博的转发微博等.