iOS 知识大全iOS 工具集

iOS 快捷方式 Quick Actions

2021-04-30  本文已影响0人  小锤子_
截屏2021-04-30 下午3.48.21.png

首先支持3d Touch,设备iPhone 6s+,iOS9+之后新增的功能。两种方式能实现--

(1)Info.plist 创建快捷方式

截屏2021-04-30 下午3.49.27.png

快捷方式支持在 Info.plist 里直接定义,主键是UIApplicationShortcutItems,它是一个数组Array。各个 Key 值可以在查看Information Property List Key Reference,在这里简单地介绍一下各个 Key 的作用。

Key 作用
UIApplicationShortcutItemType(必需)   唯一标识
UIApplicationShortcutItemTitle(必需)  显示的标题
UIApplicationShortcutItemSubtitle(可选)   显示的副标题
UIApplicationShortcutItemIconType(可选)   使用系统的图标
UIApplicationShortcutItemIconFile(可选)   使用项目的图标
UIApplicationShortcutItemUserInfo(可选)   附加的信息

点击快捷方式后方法的调用

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler API_AVAILABLE(ios(9.0)) {
 NSLog(@"%s", __FUNCTION__);
  
 if ([shortcutItem.type isEqualToString:@"search"]) {
  NSLog(@"用户从快捷方式“搜索”进来的");
 } else if ([shortcutItem.type isEqualToString:@"list"]) {
  NSLog(@"用户从快捷方式“榜单”进来的");
 } else if ([shortcutItem.type isEqualToString:@"public"]) {
  NSLog(@"用户从快捷方式“一键发布”进来的");
 }
}

(2)代码创建快捷方式

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 NSLog(@"%s", __FUNCTION__);
 
 if (@available(iOS 9.0, *)) {
//  其中的图标可以使用系统自定义,也可以使用项目中的
  UIApplicationShortcutIcon *searchIcon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeSearch];
  UIApplicationShortcutItem *search = [[UIApplicationShortcutItem alloc] initWithType:@"search" localizedTitle:@"搜索" localizedSubtitle:nil icon:searchIcon userInfo:nil];
  
  UIApplicationShortcutIcon *publicIcon = [UIApplicationShortcutIcon iconWithTemplateImageName:@"upload"];
  UIApplicationShortcutItem *public = [[UIApplicationShortcutItem alloc] initWithType:@"public" localizedTitle:@"一键发布" localizedSubtitle:nil icon:publicIcon userInfo:nil];
  
  UIApplicationShortcutItem *list = [[UIApplicationShortcutItem alloc] initWithType:@"list" localizedTitle:@"榜单" localizedSubtitle:@"全区排行" icon:nil userInfo:nil];
  
  application.shortcutItems = @[list, public, search];
 }
 
 return YES;
}

点击后触发的方法和(1)一样

上一篇下一篇

猜你喜欢

热点阅读