iOS 9.1 以后加入了允许3DTouch的功能,iOS实现如下:
在APPDelegate.m中初始化:
//创建应用图标上的3D touch快捷选项
- (void)creatShortcutItem {
//创建系统风格的icon
UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeShare];
UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeCloud];
// //创建自定义图标的icon
// UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"分享.png"];
//创建快捷选项
UIApplicationShortcutItem * item1 = [[UIApplicationShortcutItem alloc]initWithType:@"com.myapp.one" localizedTitle:@"第一个按钮" localizedSubtitle:@"第一个按钮副标题" icon:icon1 userInfo:nil];
UIApplicationShortcutItem * item2 = [[UIApplicationShortcutItem alloc]initWithType:@"com.myapp.two" localizedTitle:@"第二个按钮" localizedSubtitle:@"第二个副标题" icon:icon2 userInfo:nil];
//添加到快捷选项数组
[UIApplication sharedApplication].shortcutItems = @[item1,item2];
}
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {
YGLoginViewController* loginVC = [[YGLoginViewController alloc] init];
UINavigationController * navMain = [[UINavigationController alloc] initWithRootViewController:loginVC];
navMain.navigationBar.barTintColor = BarColor;//背景颜色
navMain.navigationBar.titleTextAttributes = @{NSFontAttributeName : [UIFont systemFontOfSize:19], NSForegroundColorAttributeName : [UIColor whiteColor]};//字体颜色
self.window.rootViewController = navMain;
[self.window makeKeyAndVisible];
//判断先前我们设置的快捷选项标签唯一标识,根据不同标识执行不同操作
if (shortcutItem) {
//判断先前我们设置的快捷选项标签唯一标识,根据不同标识执行不同操作
if([shortcutItem.type isEqualToString:@"com.myapp.one"]){
YGScanVC *childVC = [[YGScanVC alloc] init];
[navMain pushViewController:childVC animated:NO];
} else if ([shortcutItem.type isEqualToString:@"com.myapp.two"]) {//进入搜索界面
YGScanVC *childVC = [[YGScanVC alloc] init];
[navMain pushViewController:childVC animated:NO];
}
}
if (completionHandler) {
completionHandler(YES);
}
}
只需要在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 调用 creatShortcutItem 方法即可。