關(guān)于iOS端集成Siri Shortcuts網(wǎng)上看了很多都是Swift的教程,蘋果官方給的例子代碼也是Swift的,不熟悉Swift的人看起來(lái)還是有點(diǎn)困惑肮柜,今天給大家介紹下關(guān)于怎樣集成基于Objective-C的Siri Shortcuts擦俐,簡(jiǎn)單粗暴。
先看一些基本的概念吧槽驶,首先創(chuàng)建一個(gè)Siri Shortcuts有兩種方式责嚷,分別是:
NSUserActivity的方式比較粗,而且不夠精確優(yōu)雅掂铐,這里不作討論罕拂,有興趣的同學(xué)可以去看蘋果官方文檔和視頻這里重點(diǎn)介紹下Intents的方式揍异。
Intents創(chuàng)建Siri Shortcuts大致步驟如下:
0. 準(zhǔn)備
打開(kāi)主target的SiriCapabilities
添加Intents Extension
File -> New -> Target -> Intents Extension
1. Define Shortcut
添加Intents文件
File -> New -> File..., 選擇 SiriKit Intent Definition File
配置Instents文件
點(diǎn)擊左下角加號(hào) -> New Intent -> 命名(XXXname,我這里用的BreakFast)
填寫Title和Description, Intent和Response分別有對(duì)應(yīng)的Title和Description, 另外Response中配置的模板編譯成功后會(huì)生成相應(yīng)的API爆班,下文會(huì)提到(截圖BreakFastHandler.m)衷掷。
選擇Category為Order(Category有很多種,不同的Category在和Siri交互的時(shí)候有不同的文字提示柿菩,按鈕樣式和語(yǔ)音提示戚嗅,請(qǐng)看官方介紹)
編譯
編譯成功后會(huì)自動(dòng)生成對(duì)應(yīng)的一系列類和方法,后面會(huì)用到枢舶,這里需要注意的是Objective-C在Import對(duì)應(yīng)的類可能沒(méi)有提示懦胞,一般不用管直接import就行了,類名就是XXXnameIntent凉泄、XXXnameHandler等等躏尉,可以在Macintosh HD? ? ?Users? ? ?<user> ? ?Library? ? ?Developer? ? ?Xcode? ? ?DerivedData? ? ?<project-id> ? ?Build? ? ?Intermediates.noindex? ? ?<project>.build? ? ?Debug-iphoneos? ? ?<project>.build? ? ?DerivedSources? ? ?IntentDefinitionGenerated? ? ?Intents?中看到,也可以在右邊欄中找到如圖
指定Target
蘋果官方推薦的使用方法是提取一個(gè)公共的framework,方便extension和target使用
修改plist
準(zhǔn)備階段創(chuàng)建的Extension文件夾下的Info.plist文件后众,如下圖
2. Donate Shortcut
在任何合適的地方Donate Shortcuts給系統(tǒng)胀糜,代碼如下:
3. Handle Shortcut
新建一個(gè)BreakFastHandler繼承自NSObject,用于接收我們自定義的Intent
在Extansion目錄下IntentHandler.m中把我們的Handler加進(jìn)去
done~
Intent方式優(yōu)點(diǎn)
1.不用打開(kāi)App也能以多種方式交互
2.自定義交互的聲音和UI
3.可以智能推薦吼具,比如在某個(gè)特定的時(shí)間和地點(diǎn)推薦特定的Shortcuts(市場(chǎng)上很多App都可以做這一塊的功能但是都沒(méi)做)
這里需要注意的是Siri Shortcuts雖然很棒但是不能濫用哦僚纷。
歡迎小伙伴們?cè)谠u(píng)論區(qū)交流~