前言
Xcode 10已經(jīng)正式發(fā)布立莉,開發(fā)者可以接入Siri Shortcuts的iOS 12新特性。
WWDC2018的Introduction to Siri Shortcuts Session介紹了Siri Shortcuts的使用和Swift接入,但沒有Objective-C版本的demo诡壁。
于是新開此文,介紹如何快速用OC接入iOS 12新特性Siri Shortcuts。
正文
快速接入Siri Shortcuts
Siri Shortcuts的API有兩大類:NSUserActivity和Intents娜饵。
使用NSUserActivity接入Siri Shortcuts簡單高效,只需十分鐘官辈。
1箱舞、plist添加activity type(Define Shortcut)
注意是array的類型,每個元素是一個字符串拳亿,這里定義的是loying.LearnSiriShortcut.type
晴股;
<key>NSUserActivityTypes</key> <array>
<string>loying.LearnSiriShortcut.type</string> </array>
2、配置NSUserActivity并通知Siri(Donate Shortcut)
-initWithActivityType
接口的type參數(shù)要和plist一致肺魁;
eligibleForPrediction是iOS 12新增API电湘,如需支持老版本要添加 @available(iOS 12.0, *)
的判斷;
userActivity的userInfo屬性是透傳的參數(shù)值;
最后把userActivity賦值給viewController的userActivity屬性寂呛;
- (void)reportSiriShortcuts {
NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:@"loying.LearnSiriShortcut.type"];
userActivity.eligibleForSearch = YES;
if (@available(iOS 12.0, *)) // 如果要支持老版本怎诫,加上判斷
{
userActivity.eligibleForPrediction = YES;
}
userActivity.title = @"測試標(biāo)題";
userActivity.userInfo = @{@"testKey" : @"testValue"};
self.userActivity = userActivity;
}
3、在AppDelegate中處理Siri打開APP請求 (Handle Shortcut)
通過userActivity的type值判斷是否為Siri Shortcuts呼起贷痪,做相應(yīng)的邏輯處理幻妓。
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
NSLog(@"continueUserActivity");
if ([userActivity.activityType isEqualToString:@"loying.LearnSiriShortcut.type"]) {
// 做自己的業(yè)務(wù)邏輯
}
return YES;
}
至此接入Siri Shortcuts完畢,僅需三步劫拢!
下面根據(jù)WWDC的視頻詳細(xì)介紹Siri Shortcuts的新特性肉津。
Siri Shortcuts的特性解析
Siri Shortcuts提供的能力有兩個:
- 1、Suggestion(建議)
用戶重復(fù)舱沧、固定的行為妹沙,通過不斷的告知siri,siri會在確定用戶習(xí)慣后狗唉,會發(fā)本地推送提醒用戶初烘;
比如說某個用戶習(xí)慣每天晚上11點(diǎn)的時候用微信讀書進(jìn)行閱讀,如果微信讀書把用戶每次的行為發(fā)送給Siri分俯,那么Siri在學(xué)習(xí)到用戶的習(xí)慣之后肾筐,會在適當(dāng)時候通過本地推送提示用戶,推送的截圖如下:
- 2缸剪、Shortcuts(短語快捷方式)
把APP的常用操作行為與短語掛鉤吗铐,通過設(shè)置好的短語可以快捷使用APP的功能;
WWDC以點(diǎn)外賣為例杏节,通過設(shè)置好的短語coffee time
唬渗,可以呼起APP,也可以直接在Siri界面進(jìn)行下單操作奋渔;
coffee time
以上的功能都需要特定的使用場景:
1镊逝、App的關(guān)鍵功能;
2嫉鲸、用戶有重復(fù)性的行為撑蒜;
3、隨時都可以執(zhí)行玄渗;
不滿足以上三個要求的功能座菠,蘋果不推薦使用Siri Shortcuts。
Siri Shortcuts的使用
iOS 12的開發(fā)者選項增加了Display Recent Shortcuts
藤树,打開之后可以顯示最近發(fā)送給Siri的Shortcuts浴滴;
如下,向Siri發(fā)送了名為“測試標(biāo)題”的Shortcuts岁钓;
在添加Siri Shortcuts之后升略,本地搜索時能找到對應(yīng)的Shortcuts微王,點(diǎn)擊之后會執(zhí)行定義好的Shortcuts操作;
在APP添加Shortcuts之后品嚣,可以在系統(tǒng)設(shè)置中錄制Siri Shortcuts的快捷短語:
錄制短語之后骂远,可以通過Siri快速呼起APP對應(yīng)的功能:
注意事項
1、Siri語言版本可以設(shè)置成中文/英文腰根,需要與短語的語言類型一致;
2拓型、檢查項目中是否已存在接口- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
额嘿;(實(shí)際開發(fā)過程,因為UniversalLink接入劣挫,在Category已經(jīng)實(shí)現(xiàn)這個delegate册养,導(dǎo)致在AppDelegate.m實(shí)現(xiàn)的接口沒有回調(diào))
附錄
招聘啟事
北京招聘Vulkan圖形開發(fā)工程師
受人所托,現(xiàn)幫忙發(fā)一則Vulkan圖形開發(fā)工程師招聘消息压固。
要求:熟練掌握OpenGL ES球拦、Vulkan等圖形庫的使用,最好有豐富的圖形工程實(shí)踐經(jīng)驗帐我。
工作地點(diǎn):北京
有意向熊皮皮聯(lián)系坎炼,微信migao117842