支持的領(lǐng)域

SiriKit的引入支持多個(gè)領(lǐng)域的操作,如語(yǔ)音通話、信息發(fā)送、媒體播放等。開(kāi)發(fā)者可以通過(guò)SiriKit為這些領(lǐng)域的操作提供支持,從而擴(kuò)展Siri的功能應(yīng)用范圍。

開(kāi)發(fā)者的機(jī)會(huì)

開(kāi)放SiriKit后,開(kāi)發(fā)者可以將其應(yīng)用集成到Siri中,為用戶提供更為便捷的語(yǔ)音控制體驗(yàn)。這也為開(kāi)發(fā)者提供了一個(gè)新的用戶交互途徑。

iOS12推出SiriShortcuts

Siri Shortcuts的功能

在WWDC 2018,蘋(píng)果進(jìn)一步增強(qiáng)了Siri的功能,推出Siri Shortcuts。用戶可以通過(guò)設(shè)定的短語(yǔ)快速觸發(fā)預(yù)定義的操作,例如播放白噪音或下單咖啡。

Siri Shortcuts示例

使用場(chǎng)景

Siri Shortcuts允許用戶自定義語(yǔ)音命令,以實(shí)現(xiàn)更快速的操作。這在日常生活中極大提升了用戶的操作效率,尤其是在繁忙或需要專注的時(shí)候。

開(kāi)發(fā)者支持

開(kāi)發(fā)者可以通過(guò)Siri Shortcuts API將應(yīng)用功能與用戶自定義的語(yǔ)音短語(yǔ)關(guān)聯(lián),提供更為個(gè)性化的用戶體驗(yàn)。

SiriKit示例

發(fā)送消息示例

在SiriKit中實(shí)現(xiàn)發(fā)送消息的功能,需要?jiǎng)?chuàng)建一個(gè)INSendMessageIntent,并處理消息接受者和內(nèi)容等參數(shù)。這些參數(shù)會(huì)被傳遞給應(yīng)用的擴(kuò)展進(jìn)行處理。

import Intents

class MySendMessageIntentHandler: NSObject, INSendMessageIntentHandling {
    func handle(intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) {
        // 實(shí)現(xiàn)發(fā)送消息的邏輯
    }
}

Demo項(xiàng)目創(chuàng)建

打開(kāi)Xcode,選擇File->New->Project,創(chuàng)建一個(gè)新的項(xiàng)目名為MySiriKitDemo,并添加Intent Extension來(lái)處理Siri的意圖。

Demo項(xiàng)目創(chuàng)建

配置和共享信息

在項(xiàng)目中配置必要的Intents,并創(chuàng)建用戶信息類以便于處理Siri請(qǐng)求的數(shù)據(jù)。例如,創(chuàng)建MyUser和MyAccount類來(lái)管理聯(lián)系人信息。

Domains和Intents概念概覽

Domain和Intent介紹

SiriKit中的Domain可以理解為任務(wù)的類型,每個(gè)Domain下有不同的Intent代表具體任務(wù)。開(kāi)發(fā)者需要指定應(yīng)用支持的Domain和Intent,以便于Siri能夠調(diào)用相關(guān)功能。

各領(lǐng)域的應(yīng)用

SiriKit支持多個(gè)領(lǐng)域的應(yīng)用,包括語(yǔ)音通話、信息傳遞、媒體控制等。每個(gè)領(lǐng)域都有特定的Intent來(lái)執(zhí)行任務(wù)。

設(shè)計(jì)原則

在設(shè)計(jì)應(yīng)用時(shí),開(kāi)發(fā)者需要考慮如何通過(guò)Domain和Intent將應(yīng)用功能集成到Siri中,并為用戶提供直觀的語(yǔ)音交互體驗(yàn)。

開(kāi)發(fā)環(huán)境和支持類型

所需工具

開(kāi)發(fā)SiriKit應(yīng)用需要使用Xcode等開(kāi)發(fā)工具,并在開(kāi)發(fā)過(guò)程中配置好Intents Extension。

支持的設(shè)備

SiriKit支持在iOS設(shè)備上運(yùn)行,開(kāi)發(fā)者可以通過(guò)模擬器進(jìn)行測(cè)試,也可以在真實(shí)設(shè)備上進(jìn)行調(diào)試。

UI支持

除了邏輯處理,開(kāi)發(fā)者還可以選擇提供UI Extension,以便在用戶使用Siri時(shí)展示相關(guān)的UI元素。

接入SiriKit的步驟

啟用Siri能力

在Xcode中啟用應(yīng)用的Siri Capability,并在Info.plist中添加必要的配置,以便應(yīng)用可以接收和處理Siri的請(qǐng)求。

啟用Siri能力

定義支持的Intent

通過(guò)修改Intents Extension的Info.plist,定義應(yīng)用支持的Intent類型,例如INSendMessageIntent等。

實(shí)現(xiàn)業(yè)務(wù)邏輯

在IntentHandler中實(shí)現(xiàn)INSendMessageIntentHandling協(xié)議的相關(guān)方法,以處理Siri請(qǐng)求的具體業(yè)務(wù)邏輯。

class IntentHandler: INExtension {
    override func handler(for intent: INIntent) -> Any? {
        if intent is INSendMessageIntent {
            return MySendMessageIntentHandler()
        }
        return nil
    }
}

通過(guò)以上步驟,開(kāi)發(fā)者可以成功將應(yīng)用接入SiriKit,并為用戶提供語(yǔ)音控制功能。

FAQ

問(wèn):為什么蘋(píng)果在iOS4到iOS9之間不開(kāi)放Siri API?

問(wèn):iOS10引入SiriKit對(duì)開(kāi)發(fā)者有什么影響?

問(wèn):Siri Shortcuts在iOS12中有哪些功能?

問(wèn):如何在Xcode中啟用Siri能力?

問(wèn):SiriKit支持哪些領(lǐng)域的應(yīng)用?

上一篇:

可靈大模型深度測(cè)評(píng)

下一篇:

WaveNet 的 API Key:解鎖語(yǔ)音技術(shù)的潛力
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)