iOS開發之桌面快捷方式Quick Actions


長按桌面APPIcon圖標快捷操作添加功能開發

在支持 3D Touch 的設備上,Quick Actions 可以讓用戶更快,更少的操作步驟去完成他們最常做的事情,其中這么多操作可以通過主屏幕直接完成。比如用力地長按微信圖標,會彈出諸如"掃一掃"和"我的二維碼"等常用功能,這個我在加好友的情況下經常會用到,不是"掃"別人就是被別人"掃"。然后這是它的官方介紹,3D Touch - iOS - Apple Developer。

支持的設備是在 iPhone 6S 和 6S Plus 及后續出的 iPhone 系列,系統則是從 iOS 9.0 開始支持 3D Touch。

Info.plist 創建快捷方式

快捷方式支持在 Info.plist 里直接定義,主鍵是UIApplicationShortcutItems,它是一個數組Array。各個 Key 值可以在查看Information Property List Key Reference,在這里簡單地介紹一下各個 Key 的作用。

Key 作用
UIApplicationShortcutItemType(必需) 唯一標識
UIApplicationShortcutItemTitle(必需) 顯示的標題
UIApplicationShortcutItemSubtitle(可選) 顯示的副標題
UIApplicationShortcutItemIconType(可選) 使用系統的圖標
UIApplicationShortcutItemIconFile(可選) 使用項目的圖標
UIApplicationShortcutItemUserInfo(可選) 附加的信息

以下是一個詳細的例子,上述的 Key 除了 UIApplicationShortcutItemUserInfo 外,其它都實現了。

 

現在我們來看看運行效果,值得一提的是,圖標分別在上半屏和下半屏的情況下,顯示的排序是會不同的,具體運行效果如下所示。

圖標在上半屏

 

圖標在下半屏

 

 

 

判斷用戶點擊了哪個快捷方式

通過在 AppDelegate.m 文件中實現 UIApplicationDelegate 的代理方法

application:performActionForShortcutItem:completionHandler:,可以得知用戶是從哪個快捷方式進來的,具體代碼如下。

- (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(@"用戶從快捷方式“一鍵發布”進來的");
 }
}

 

代碼創建快捷方式

快捷方式也支持代碼創建,每一個 UIApplicationShortcutItem 就是一個快捷方式,一般在 AppDelegate.m 文件中實現方法 application:didFinishLaunchingWithOptions: 里編寫實現代碼,代碼比較易懂,這里就不再說明了。

- (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;
}

 

摘自 https://www.jb51.net/article/162263.htm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM