主屏幕快捷操作

也就是以前的3D Touch功能,后面改成Haptic Touch。(最多只能添加4個)

一:添加

1.1: 靜態(tài)快捷菜單(配置在 Info.plist 里)

<key>UIApplicationShortcutItems</key>
<array>
    <dict>
    <key>UIApplicationShortcutItemIconType</key>
    <string>UIApplicationShortcutIconTypeTime</string>
    <key>UIApplicationShortcutItemTitle</key>
    <string>時間</string>
    <key>UIApplicationShortcutItemType</key>
    <string>time</string>
    </dict>
    <dict>
    <key>UIApplicationShortcutItemIconFile</key>
    <string>liconPW</string>
    <key>UIApplicationShortcutItemSubtitle</key>
    <string>修改</string>
    <key>UIApplicationShortcutItemTitle</key>
    <string>密碼</string>
    <key>UIApplicationShortcutItemType</key>
    <string>password</string>
    <key>UIApplicationShortcutItemUserInfo</key>
    <dict>
    <key>pw</key>
    <string>change</string>
    </dict>
    </dict>
</array>

上面就是配置了2個快捷功能,時間和密碼

1.2 動態(tài)快捷菜單(代碼生成)

/*
參數(shù)解析:
initWithType: 類型 對應(yīng)UIApplicationShortcutItemType
localizedTitle: 標(biāo)題 對應(yīng)UIApplicationShortcutItemTitle
localizedSubtitle: 副標(biāo)題 對應(yīng)UIApplicationShortcutItemSubtitle
icon:圖標(biāo) 分系統(tǒng)自帶和自定義,系統(tǒng)自帶同UIApplicationShortcutItemIconType,使用如下
userInfo: 參數(shù)字典 對應(yīng)UIApplicationShortcutItemUserInfo
*/
UIApplicationShortcutItem *item1 = [[UIApplicationShortcutItem alloc] initWithType:@"add" localizedTitle:@"新建" localizedSubtitle:nil icon:[UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd] userInfo:nil];
    
UIApplicationShortcutIcon *icon = [UIApplicationShortcutIcon iconWithTemplateImageName:@"liconPW"];
UIApplicationShortcutItem *item2 = [[UIApplicationShortcutItem alloc] initWithType:@"message" localizedTitle:@"消息" localizedSubtitle:nil icon:icon userInfo:nil];
[UIApplication sharedApplication].shortcutItems = @[item1,item2];
上面就是配置了2個快捷功能,新建和消息。

1.3、 Info.plist 對應(yīng)參數(shù)整理

一共對應(yīng)6個字段

UIApplicationShortcutItemType    // 類型,后續(xù)可以通過這個字段區(qū)分點擊的按鈕
UIApplicationShortcutItemIconType  // 系統(tǒng)默認(rèn)的圖標(biāo)(需要使用固定的)
UIApplicationShortcutItemIconFile // 自定義的圖標(biāo)名稱(尺寸推薦 35×35 )
UIApplicationShortcutItemTitle // 標(biāo)題
UIApplicationShortcutItemSubtitle //副標(biāo)題
UIApplicationShortcutItemUserInfo // 字典,可以傳一些要用的參數(shù)

1.4、系統(tǒng)自帶圖標(biāo)類型

    UIApplicationShortcutIconTypeCompose,          // 鉛筆寫作
    UIApplicationShortcutIconTypePlay,             // 播放按鈕
    UIApplicationShortcutIconTypePause,            // 暫停按鈕
    UIApplicationShortcutIconTypeAdd,              // 加號
    UIApplicationShortcutIconTypeLocation,         // 位置/定位
    UIApplicationShortcutIconTypeSearch,           // 搜索
    UIApplicationShortcutIconTypeShare,            // 分享
    UIApplicationShortcutIconTypeProhibit,         // 禁止/禁用
    UIApplicationShortcutIconTypeContact,          // 聯(lián)系人
    UIApplicationShortcutIconTypeHome,             // 房子
    UIApplicationShortcutIconTypeMarkLocation,     // 標(biāo)記位置
    UIApplicationShortcutIconTypeFavorite,         // 星標(biāo)收藏
    UIApplicationShortcutIconTypeLove,             // 愛心
    UIApplicationShortcutIconTypeCloud,            // 云
    UIApplicationShortcutIconTypeInvitation,       // 信封邀請
    UIApplicationShortcutIconTypeConfirmation,     // 對號確認(rèn)
    UIApplicationShortcutIconTypeMail,             // 郵件
    UIApplicationShortcutIconTypeMessage,          // 信息氣泡
    UIApplicationShortcutIconTypeDate,             // 日歷
    UIApplicationShortcutIconTypeTime,             // 時鐘
    UIApplicationShortcutIconTypeCapturePhoto,     // 拍照
    UIApplicationShortcutIconTypeCaptureVideo,     // 錄像
    UIApplicationShortcutIconTypeTask,             // 任務(wù)勾選
    UIApplicationShortcutIconTypeTaskCompleted,    // 任務(wù)完成(勾選方框)
    UIApplicationShortcutIconTypeAlarm,            // 鬧鐘
    UIApplicationShortcutIconTypeBookmark,         // 書簽
    UIApplicationShortcutIconTypeShuffle,          // 隨機(jī)播放
    UIApplicationShortcutIconTypeAudio,            // 音頻
    UIApplicationShortcutIconTypeUpdate            // 更新/刷新

2、點擊后獲取事件進(jìn)行對應(yīng)處理

2.1、iOS 12 及以前

#pragma - APP未啟動時
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIApplicationShortcutItem *shortcutItem = launchOptions[UIApplicationLaunchOptionsShortcutItemKey];
 if (shortcutItem) {
 if ([shortcutItem.type isEqualToString:@"time"]) {
 // 點擊了時間按鈕
 } else if ([shortcutItem.type isEqualToString:@"password"]) {
 // 點擊了密碼按鈕
 }
 }
 NSLog(@"參數(shù):%@", shortcutItem.userInfo);
 return YES;
}

#pragma - APP已經(jīng)啟動時
-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {
if ([shortcutItem.type isEqualToString:@"time"]) {
// 點擊了時間按鈕
 } else if ([shortcutItem.type isEqualToString:@"password"]) {
// 點擊了密碼按鈕
 }
 completionHandler(YES);
}

2.2、iOS 13 +

#pragma - APP未啟動時
-(void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
UIApplicationShortcutItem *shortcutItem = connectionOptions.shortcutItem;
 if (shortcutItem) {
 if ([shortcutItem.type isEqualToString:@"time"]) {
 // 點擊了時間按鈕
 } else if ([shortcutItem.type isEqualToString:@"password"]) {
 // 點擊了密碼按鈕
 }
 }
}

#pragma - APP已經(jīng)啟動時
-(void)windowScene:(UIWindowScene *)windowScene performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {
if ([shortcutItem.type isEqualToString:@"time"]) {
// 點擊了時間按鈕
 } else if ([shortcutItem.type isEqualToString:@"password"]) {
// 點擊了密碼按鈕
 }
 NSLog(@"參數(shù):%@", shortcutItem.userInfo);
 completionHandler(YES);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容