iOS12 Siri ShortCuts 应用 (二)

本文介绍了如何在iOS12中利用Intents Extension创建Siri Shortcuts,无需打开应用即可完成任务。通过SiriKit Intent Definition File定义Intent,包括DailyPunch、BreakfastPunch和SportPunch,然后实现Intents Extension处理Intent,判断用户登录状态并进行相应操作,最后展示自定义的Intent UI给用户。文章还提到了捐赠(Donate)行为以提升Siri预测的准确性。
摘要由CSDN通过智能技术生成

上一篇文章 iOS12 Siri ShortCuts 应用 (一) 主要写了通过 NSUserActivity 实现 Siri ShortCuts 的方案。具体功能就是通过用户自定义的siri 语音指令, 利用siri打开app, 完成用户想要的功能。

今天这篇文章就来介绍另外一种功能,通过 Intents Extension 实现不打开app 去完成某个任务。先来看下效果:
这里写图片描述


SiriKit Intent Definition File

在新建Extension之前,我们要通过 file->newfile, 选择 SiriKit Intent Definition File。创建好后是这个样子的:
这里写图片描述

上图中,我一共自定义了三个 Intent, 分别是 DailyPunch、BreakfastPunch和 SportPunch。在这个界面,你可以设置 Intent 的 category,title和一些参数。每个 Intent 都对应一个 Response, 如下图所示。你可以在response定义参数和错误类型。如图所示,我定义了 errorMessage 的参数 和 failureUnLogin等两个错误类型。这里 errorMessage 用来传递服务器返回的错误信息。
这里写图片描述

创建完成后,编译一下项目,xcode 会自动生成对应的类,我这里的话会生成 DailyPunchIntent 等三个类,每个类包含了 DailyPunchIntentHandling 协议和 DailyPunchIntentResponse 类等所需要的内容。

需要注意的是,这些类不会出现在项目的目录中,有点和 Core Data 类似。
但你可以正常使用,可以为其新建 Category 或者导入头文件就可以直接使用。

我这里通过 Category 为每个 Intent 类添加了 suggestedInvocationPhrase 属性,可以在用户录制的时候给出建议短语。

@implementation DailyPunchIntent (PXDailyPunch)

- (instancetype)init{
    self = [super init];
    if (self) {
        self.suggestedInvocationPhrase = @"打卡";
    }
    return self;
}

@end

Intents Extension

接下来就是创建 Extension 了。通过 file -> new -> target , 选择 Intents Extension 即可。为了让 Extension 的界面便于控制,我选择了 Include UI Extension。这样就同时创建了两个Extension。

Intents Extension 创建好后,会自动出

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值