如何使用 SiriKit 通过 Web 服务发送数据?
How to use SiriKit for sending data using Web Service?
我正在探索 SiriKit,我想用它来向 Web 服务器发送数据。基本上,我想在用户说 "Hey Siri, send data using SomeApplication" 时发送一些数据。这里 'SomeApplication' 是我的应用程序的名称。我用谷歌搜索了一下,但我开始知道我只能使用 SiriKit 给出的意图,我不能创建自己的意图。如果有什么方法可以做到这一点,请帮助我。
的确,您无法创建自己的意图,但您可以玩一个把戏。您可以使用消息传递意图,而不是发送文本消息,您可以从那里拨打服务电话。
在IntentHandler.swift文件中,修改resolveRecipients方法的代码,创建自定义联系人。这将导致显示消息 UI 但会跳过询问收件人的步骤。相反,Siri 会直接询问您将在 resolveContent 方法中收到的消息。从那里获取它并调用您的网络服务。就如此容易。
这是代码
func resolveRecipients(for intent: INSendMessageIntent, with completion: @escaping ([INPersonResolutionResult]) -> Void) {
let resolutionResults = [INPersonResolutionResult.success(with: INPerson.init(personHandle: INPersonHandle.init(value: "Raw", type: .unknown), nameComponents: PersonNameComponents.init(), displayName: "Raw", image: INImage.init(), contactIdentifier: "Raw", customIdentifier: "Raw"))]
completion(resolutionResults)
}
详细示例,你可以查看这个Git Repo for SiriKitDemo
我正在探索 SiriKit,我想用它来向 Web 服务器发送数据。基本上,我想在用户说 "Hey Siri, send data using SomeApplication" 时发送一些数据。这里 'SomeApplication' 是我的应用程序的名称。我用谷歌搜索了一下,但我开始知道我只能使用 SiriKit 给出的意图,我不能创建自己的意图。如果有什么方法可以做到这一点,请帮助我。
的确,您无法创建自己的意图,但您可以玩一个把戏。您可以使用消息传递意图,而不是发送文本消息,您可以从那里拨打服务电话。 在IntentHandler.swift文件中,修改resolveRecipients方法的代码,创建自定义联系人。这将导致显示消息 UI 但会跳过询问收件人的步骤。相反,Siri 会直接询问您将在 resolveContent 方法中收到的消息。从那里获取它并调用您的网络服务。就如此容易。
这是代码
func resolveRecipients(for intent: INSendMessageIntent, with completion: @escaping ([INPersonResolutionResult]) -> Void) {
let resolutionResults = [INPersonResolutionResult.success(with: INPerson.init(personHandle: INPersonHandle.init(value: "Raw", type: .unknown), nameComponents: PersonNameComponents.init(), displayName: "Raw", image: INImage.init(), contactIdentifier: "Raw", customIdentifier: "Raw"))]
completion(resolutionResults)
}
详细示例,你可以查看这个Git Repo for SiriKitDemo