AppDelegate.m
//#pragma mark - INUIAddVoiceShortcutButtonDelegate
//新添加
- (void)presentAddVoiceShortcutViewController:(INUIAddVoiceShortcutViewController*)addVoiceShortcutViewControllerforAddVoiceShortcutButton:(INUIAddVoiceShortcutButton*)addVoiceShortcutButton? API_AVAILABLE(ios(12.0)){
? ? //新添加接口的代理
? ? addVoiceShortcutViewController.delegate=self;
? ? [selfpresentViewController:addVoiceShortcutViewControlleranimated:YEScompletion:nil];
}
#pragma mark -INUIEditVoiceShortcutViewControllerDelegate
//添加過佑笋,去編輯
- (void)presentEditVoiceShortcutViewController:(INUIEditVoiceShortcutViewController*)editVoiceShortcutViewControllerforAddVoiceShortcutButton:(INUIAddVoiceShortcutButton*)addVoiceShortcutButton? API_AVAILABLE(ios(12.0)){
? ? //編輯接口的代理
? ? editVoiceShortcutViewController.delegate=self;
? ? [selfpresentViewController:editVoiceShortcutViewControlleranimated:YEScompletion:nil];
}
#pragma mark - INUIAddVoiceShortcutViewControllerDelegate
- (void)addVoiceShortcutViewController:(INUIAddVoiceShortcutViewController*)controllerdidFinishWithVoiceShortcut:(nullableINVoiceShortcut*)voiceShortcuterror:(nullableNSError*)error? API_AVAILABLE(ios(12.0)){
? ? if(!error) {
? ? ? ? NSLog(@"%@, %@", voiceShortcut.invocationPhrase, voiceShortcut.identifier);
? ? ? ? [controllerdismissViewControllerAnimated:YES completion:^{
? ? ? ? ? ? NSLog(@"添加成功");
? ? ? ? }];
? ? }else{
? ? ? ? NSLog(@"%@", error.localizedDescription);
? ? }
}
- (void)addVoiceShortcutViewControllerDidCancel:(INUIAddVoiceShortcutViewController*)controller? API_AVAILABLE(ios(12.0)){
? ? [controllerdismissViewControllerAnimated:YES completion:^{
? ? ? ? NSLog(@"取消添加");
? ? }];
}
- (void)editVoiceShortcutViewController:(INUIEditVoiceShortcutViewController*)controllerdidUpdateVoiceShortcut:(nullableINVoiceShortcut*)voiceShortcuterror:(nullableNSError*)error? API_AVAILABLE(ios(12.0)){
? ? if(!error) {
? ? ? ? NSLog(@"%@, %@", voiceShortcut.invocationPhrase, voiceShortcut.identifier);
? ? ? ? [controllerdismissViewControllerAnimated:YES completion:^{
? ? ? ? ? ? NSLog(@"修改成功");
? ? ? ? }];
? ? }else{
? ? ? ? NSLog(@"%@", error.localizedDescription);
? ? }
}
- (void)editVoiceShortcutViewController:(INUIEditVoiceShortcutViewController *)controller didDeleteVoiceShortcutWithIdentifier:(NSUUID*)deletedVoiceShortcutIdentifier? API_AVAILABLE(ios(12.0)){
? ? [controllerdismissViewControllerAnimated:YES completion:^{
? ? ? ? NSLog(@"刪除命令");
? ? }];
}
- (void)editVoiceShortcutViewControllerDidCancel:(INUIEditVoiceShortcutViewController*)controller? API_AVAILABLE(ios(12.0)){
? ? [controllerdismissViewControllerAnimated:YES completion:^{
? ? ? ? NSLog(@"取消添加");
? ? }];
}
//判斷 可以自定義添加到Siri按鈕
- (void)isVoiceShortcutExist {
? ? //回調(diào)再子線程,如操作UI需要回到主線程
? ? if(@available(iOS12.0, *)) {
? ? ? ? [[INVoiceShortcutCentersharedCenter]getAllVoiceShortcutsWithCompletion:^(NSArray *_NullablevoiceShortcuts,NSError*_Nullableerror) {
? ? ? ? ? ? if(!error) {
? ? ? ? ? ? ? ? for(INVoiceShortcut*shortcutinvoiceShortcuts) {
? ? ? ? ? ? ? ? ? ? //存在
? ? ? ? ? ? ? ? ? ? if ([shortcut.shortcut.userActivity.activityType isEqualToString:@"Imy.SiriShortcut"]) {
? ? ? ? ? ? ? ? ? ? ? ? dispatch_async(dispatch_get_main_queue(), ^{
? ? ? ? ? ? ? ? ? ? ? ? ? ? //添加一個按鈕燃箭,可以點擊跳轉(zhuǎn)INUIEditVoiceShortcutViewController扰法,INUIEditVoiceShortcutViewController需要自己生成
? ? ? ? ? ? ? ? ? ? ? ? ? ? INUIEditVoiceShortcutViewController *editVC = [[INUIEditVoiceShortcutViewController alloc] initWithVoiceShortcut:shortcut];
? ? ? ? ? ? ? ? ? ? ? ? ? ? editVC.delegate=self;
? ? ? ? ? ? ? ? ? ? ? ? ? ? [selfpresentViewController:editVCanimated:YEScompletion:^{
? ? ? ? ? ? ? ? ? ? ? ? ? ? }];
? ? ? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? ? ? //不存在
? ? ? ? ? ? ? ? ? ? ? ? dispatch_async(dispatch_get_main_queue(), ^{
? ? ? ? ? ? ? ? ? ? ? ? ? ? //添加一個按鈕净神,可以點擊跳轉(zhuǎn)INUIAddVoiceShortcutViewController,INUIAddVoiceShortcutViewController需要自己生成
? ? ? ? ? ? ? ? ? ? ? ? ? ? INShortcut* shortCut = [[INShortcutalloc]initWithUserActivity:[selfcreateRelevantUserActivity]];
? ? ? ? ? ? ? ? ? ? ? ? ? ? INUIAddVoiceShortcutViewController *addVC = [[INUIAddVoiceShortcutViewController alloc] initWithShortcut:shortCut];
? ? ? ? ? ? ? ? ? ? ? ? ? ? addVC.delegate=self;
? ? ? ? ? ? ? ? ? ? ? ? ? ? [selfpresentViewController:addVCanimated:YEScompletion:^{
? ? ? ? ? ? ? ? ? ? ? ? ? ? }];
? ? ? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }];
? ? }
}
百度網(wǎng)盤:
鏈接: https://pan.baidu.com/s/1H1wJqVX9sJwakCtg9PSVig 提取碼: ddsd