ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Siri Shortcut

2021-04-12 17:32:10  阅读:317  来源: 互联网

标签:AVAILABLE INUIEditVoiceShortcutViewController void Siri NSLog Shortcut 12.0 API


 


 

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 {

    //回调再子线程,如操作UI需要回到主线程

    if(@available(iOS12.0, *)) {

        [[INVoiceShortcutCentersharedCenter]getAllVoiceShortcutsWithCompletion:^(NSArray<invoiceshortcut*> *_NullablevoiceShortcuts,NSError*_Nullableerror) {

            if(!error) {

                for(INVoiceShortcut*shortcutinvoiceShortcuts) {

                    //存在

                    if ([shortcut.shortcut.userActivity.activityType isEqualToString:@"Imy.SiriShortcut"]) {

                        dispatch_async(dispatch_get_main_queue(), ^{

                            //添加一个按钮,可以点击跳转INUIEditVoiceShortcutViewController,INUIEditVoiceShortcutViewController需要自己生成

                            INUIEditVoiceShortcutViewController *editVC = [[INUIEditVoiceShortcutViewController alloc] initWithVoiceShortcut:shortcut];

                            editVC.delegate=self;

                            [selfpresentViewController:editVCanimated:YEScompletion:^{

 

                            }];

                        });

                    }else{

                        //不存在

                        dispatch_async(dispatch_get_main_queue(), ^{

                            //添加一个按钮,可以点击跳转INUIAddVoiceShortcutViewController,INUIAddVoiceShortcutViewController需要自己生成

                            INShortcut* shortCut = [[INShortcutalloc]initWithUserActivity:[selfcreateRelevantUserActivity]];

 

                            INUIAddVoiceShortcutViewController *addVC = [[INUIAddVoiceShortcutViewController alloc] initWithShortcut:shortCut];

 

 

 

                            addVC.delegate=self;

                            [selfpresentViewController:addVCanimated:YEScompletion:^{

 

                            }];

                        });

                    }

                }

            }

 

        }];

    }

}

标签:AVAILABLE,INUIEditVoiceShortcutViewController,void,Siri,NSLog,Shortcut,12.0,API
来源: https://www.cnblogs.com/cxxl/p/14648996.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有