UIApplicationShortcutItems (数组类型)指定了app的静态 Home screen quick actions.即:
UIApplicationShortcutItems这个key包含了一个字典数组.每一个字典包括了一个单独的quick action的详细的信息和用处.
你可用用一个字典数组为你的app指定固定的quick action.当用户在一个支持3D Touch的设备上按app icon的时候,此时就会出现一些quick actions 如上图的效果.定义在Info.plist文件中的静态quick actions在屏幕出现的顺序和你定义在Info.plist文件中的位置相同(PS: 虽然很喜欢苹果严谨详细的态度,但是小女子认为这句话是废话,否则这些quick actions的顺序就是不可控的了)系统弹出的这个快捷菜单,最先考虑静态的quick actions,如果有剩余的位置才会允许你定义静态的quick actions.
以下是官方提供的两个静态quick actions 的在Info.plist中的截图
当用户选择了一个quick actions,系统加载或者恢复你的app,同时回调在appDelegate中的 application:performActionForShortcutItem:completionHandler: 方法. 用UIApplicationLaunchOptionsShortcutItemKey来取回点击的quick action.
下面列举所有Home screen quick actions 的所以key (shortcut items)
UIApplicationShortcutItemType (required) : 当用户调用相应的quick action 的时候,会传递给你app所必须的字符串.你的app可以使用这个字符串将quick action归类,为了和它收到的其他类型进行区别.你不需要注册你的quick action的类型.
UIApplicationShortcutItemTitle (required) : 用于显示的quick action的名字,比如上面的,点击,摇一摇,音乐... 如果这个名字能在一行显示,系统会默认显示一个单行的quick action. 如果这个名字不能在一行显示,并且你没有指定UIApplicationShortcutItemSubtitle的话,系统会将其在2行显示(最多两行!!!).你也可以通过InfoPilst.strings对这个名字进行国际化. (如何国际化请看这里: 如果进行国际化)
UIApplicationShortcutItemSubtitle(optional) : 显示在title下面的小文字,下图所示那个啦啦啦啦:
如果你指定了quick action的subtitle,系统会在一行显示(也许只是一部分的title,后面是省略号)不管你这个title多长. 意思就是如果你指定了subtitle就算是你的title很长也不好给你换行了.只会用一行显示.同样你也可以对这些文字进行国际化,和上面的一样.
UIApplicationShortcutItemIconType (optional) : 系统提供的库中的一些图标的icon. 是一个UIApplicationShortcutIconType 的枚举.就是前面显示的图片.
UIApplicationShortcutItemIconFile (optional) : 指定app bundle中的文件图片.或者是在asset catalog里面的文件名. 注意Icon应是正方形的,单一的颜色,35*35个点. (就算你的图片有颜色,苹果自动也会给你处理的).如果你指定了这个值,系统便会忽略掉对UIApplicationShortcutItemIconType的设计,因为这两个值是冲突的,而且开发者自己的图片肯定使用比系统的优先级高呀.
UIApplicationShortcutItemUserInfo (optional) : 该key用来提供app的版本信息.
注意: 这些key只支持9.0以上并且支持3D Touch的设备. 有人可能会说,这不废话吗,支持3D Touch的设备肯定都是9.0以上呀.但是各位程序猿们请注意了,在plist文件中设置还好,如果你用代码写了,而且还不判断手机系统的话....你们都知道使用高级API的后果吧