Just My Life & My Work

[iOS] Quick Action (快速動作)

隨著iPhone 6s和iPhone 6s +的發表,3D Touch功能開始展現其魅力,讓我們能夠在不開啟App時,就能決定開啟後要做什麼事情!透過在手機桌面上重壓App icon,將會跳出選單給使用者點擊。

跟先前發表的Force Touch不一樣的是,3D Touch能夠衡量按壓的程度。可以這麼解釋:前者只能0和1兩種狀態,後者則可以0-1隨意程度的數值。

iOS Quick Action 快速動作

首先要在專案中的info.plist設定key和value:

iOS Quick Action 快速動作3

接著在AppDelegate.m做內建method:

/**
 Theme: Quick Action
 IDE: Xcode 7
 Language: Objective C
 Date: 105/07/08
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    UIApplicationShortcutItem *shortcutItem = [launchOptions objectForKey:UIApplicationLaunchOptionsShortcutItemKey];
    if(shortcutItem){
        [self handleShortCutItem:shortcutItem];
    }
    return YES;
}

-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{
    if([shortcutItem.type isEqualToString:@"com.happystudio"]){
        [self handleShortCutItem:shortcutItem];
    }
}

- (void)handleShortCutItem:(UIApplicationShortcutItem *)shortcutItem  {
    if([shortcutItem.type isEqualToString:@"com.happystudio"]){
        UIAlertView *av = [UIAlertView bk_alertViewWithTitle:@"放颱風假!"];
        [av bk_addButtonWithTitle:@"好" handler:^{

        }];
        [av show];
    }
}

若App第一次開啟,會經過didFinishLaunchingWithOptions,再經過performActionForShortcutItem;若App從背景被喚醒,則只會經過performActionForShortcutItem。

編譯執行後,回到桌面重壓App icon,進去App後便會觸發事件,在此我讓它跳出提示!

iOS Quick Action 快速動作2

註:Force Touch是Apple用於Apple Watch、全新MacBook 以及全新MacBook Pro的觸摸傳感技術。3D Touch則是Force Touch延伸出的新技術,首次用於iPhone 6s、iPhone 6s+。

參考:3D Touch Introduction: Building a Digital Scale App and Quick Actions

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

%d 位部落客按了讚: