Siri Shortcut

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 *_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:^{


                            }];

                        });

                    }

                }

            }


        }];

    }

}


百度网盘:

链接: https://pan.baidu.com/s/1H1wJqVX9sJwakCtg9PSVig 提取码: ddsd

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容