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)一样