亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS開發Quick Actions創建桌面Icon快捷方式

2020-07-26 02:19:51
字體:
來源:轉載
供稿:網友

個言

很久沒發隨筆了,有一年多了吧。期間也曾想繼續去寫隨筆,但是因為各種原因而耽擱了。最近又想了一下,還是有很多東西想要寫,想要分享,想要記錄下來的東西。之后我也會不斷寫隨筆,但不止于 iOS 的方向,也想去體驗一下新東西。在此不多說,我們開始閱讀正文吧。

簡介

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

本文的 Demo 已放到 GitHub 上,Demo 請到 GarveyCalvin/iOS-Travel 下載。

支持的設備是在 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;}

資料

本文的 Demo 已放到 GitHub 上,Demo 請到 GarveyCalvin/iOS-Travel 下載。

環境

Xcode: Version 10.1 (10B61)

測試機型:iPhone XS Max

測試系統:iOS 12.1

總結

無論是在 info.plist 或 代碼 創建 Quick Actions 都比較簡單,沒什么很復雜的邏輯,學起來很容易。

Quick Actions 的使用情況還是比較多的,就我而言,我經常會用支付寶和微信放出來的"掃一掃",支付寶的"乘車碼"等等。

3D Touch 的應用范圍不止這些,還有 Peek and Pop 和 Pressure Sensitivity,在以后或許會補上這系列的文章。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久99青青精品免费观看| 九九精品在线播放| 亚洲国产精品yw在线观看| 中文字幕日韩欧美在线视频| 综合欧美国产视频二区| 久久久91精品| 亚洲激情国产精品| 成人免费福利视频| 亚洲国产精品悠悠久久琪琪| 91日本在线观看| 国产欧美va欧美va香蕉在线| 亚洲天堂免费观看| 69影院欧美专区视频| 亚洲乱码av中文一区二区| 欧美视频国产精品| 伊人久久久久久久久久| 亚洲淫片在线视频| 高清一区二区三区四区五区| 国产欧美精品一区二区| 国产精品高潮粉嫩av| 欧美成人在线免费| 亚洲va久久久噜噜噜| 俺去亚洲欧洲欧美日韩| 久久久精品在线观看| 日韩中文字幕久久| 日韩免费电影在线观看| 国产成人精品免高潮费视频| 一本色道久久综合狠狠躁篇的优点| 91高清视频免费观看| 国产98色在线| 日韩高清人体午夜| 欧美日韩国产第一页| 欧美最猛性xxxx| 日韩的一区二区| 97国产在线视频| 亚洲天堂一区二区三区| 日韩av在线网站| 久久五月天色综合| 国产精品一区二区三区在线播放| 国产亚洲精品久久久| 精品成人国产在线观看男人呻吟| 久久久免费精品视频| 欧美精品成人在线| 欧美性videos高清精品| 国产精品女主播| 欧美肥臀大乳一区二区免费视频| 最新国产精品亚洲| 亚洲成人黄色在线| 日韩av在线播放资源| 中文字幕亚洲一区二区三区| 久久精品视频网站| 秋霞av国产精品一区| 欧美成人黄色小视频| 成人中文字幕在线观看| 亚洲人精选亚洲人成在线| 国产福利精品av综合导导航| 亚洲免费人成在线视频观看| 黑人巨大精品欧美一区二区| 精品二区三区线观看| 国产主播欧美精品| 日韩中文字幕视频在线| 亚洲国产欧美自拍| 国产一区二区三区高清在线观看| 91精品国产精品| 欧美日韩国产成人| 国产成人91久久精品| 九九视频直播综合网| 亚洲国产欧美一区二区三区久久| 亚洲美女在线视频| 日韩欧美亚洲范冰冰与中字| 色噜噜狠狠狠综合曰曰曰88av| 久久久www成人免费精品张筱雨| 不卡在线观看电视剧完整版| 91精品国产综合久久男男| 欧美精品久久久久| 不卡在线观看电视剧完整版| 国产精品久久久久久久久久久不卡| 国模私拍视频一区| 中文国产成人精品久久一| 色www亚洲国产张柏芝| 国产偷亚洲偷欧美偷精品| 97久久精品人搡人人玩| 日韩精品中文字幕久久臀| 亚洲精品99999| 亚洲一区二区三区视频播放| 欧美日韩中文字幕在线视频| 日韩精品在线播放| 久久久爽爽爽美女图片| 亚洲图片在线综合| 亚洲成在人线av| 中文字幕日韩精品有码视频| 亚洲欧美日韩精品| 亚洲男人天天操| 日韩欧美精品在线观看| 国产在线999| 国产精品一区二区久久精品| 亚洲人精品午夜在线观看| 久久人人爽人人爽人人片av高请| 38少妇精品导航| 黄网站色欧美视频| 国产激情久久久| 麻豆国产va免费精品高清在线| 亚洲韩国欧洲国产日产av| 久久久午夜视频| 国产亚洲免费的视频看| 热99久久精品| 高清日韩电视剧大全免费播放在线观看| 亚洲2020天天堂在线观看| 午夜精品久久久久久久久久久久| 成人精品久久av网站| 自拍亚洲一区欧美另类| 亚洲自拍另类欧美丝袜| 国产亚洲美女精品久久久| 日韩在线视频免费观看| 国产欧美精品日韩精品| 麻豆乱码国产一区二区三区| 亚洲欧美国产一本综合首页| 欧美激情喷水视频| 色综合久久88色综合天天看泰| 国产精品久久婷婷六月丁香| 国产精品啪视频| 91禁外国网站| 91精品国产91久久久久| 欧洲成人在线观看| 日本高清不卡在线| 美女国内精品自产拍在线播放| 亚洲欧美在线第一页| 亚洲国产精品大全| 午夜精品久久久久久99热软件| 亚洲欧美999| 欧美成人自拍视频| 欧美精品一区二区免费| 欧美理论电影网| 亚洲最大的网站| 亚洲人精品午夜在线观看| 日韩不卡中文字幕| 久久视频在线看| 日韩欧美精品免费在线| 亚洲剧情一区二区| 国产精品美女主播在线观看纯欲| 国产精品久久久久久亚洲调教| 亚洲福利视频在线| 久久国产精品影片| 26uuu另类亚洲欧美日本一| 成人国产精品色哟哟| 在线观看精品自拍私拍| 日韩精品中文字| 日韩成人高清在线| 国产精品第10页| 91日本在线观看| 97碰碰碰免费色视频| 欧美视频免费在线观看| 久久在线视频在线| 欧美特黄级在线| 少妇av一区二区三区| 日韩高清电影免费观看完整| 欧美日本在线视频中文字字幕| 国产精品视频在线观看| 性色av一区二区三区在线观看| 国产91ⅴ在线精品免费观看| 久久激情五月丁香伊人| 亚洲欧美在线x视频| 成人日韩在线电影| 亚洲福利视频免费观看|