【问题标题】:How to use SiriKit for sending data using Web Service?如何使用 SiriKit 通过 Web Service 发送数据?
【发布时间】:2018-04-02 18:35:30
【问题描述】:

我正在探索 SiriKit,我想用它来向网络服务器发送数据。基本上,每当用户说“嘿 Siri,使用 SomeApplication 发送数据”时,我想发送一些数据。这里的“SomeApplication”是我的应用程序的名称。我用谷歌搜索了一下,但我知道我只能使用 SiriKit 给出的意图,我不能创建自己的意图。如果有办法做到这一点,请帮助我。

【问题讨论】:

    标签: ios swift siri


    【解决方案1】:

    确实,您无法创建自己的意图,但您可以玩一个技巧。您可以使用消息传递意图,而不是发送短信,您可以从那里拨打服务电话。 在 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

    【讨论】:

    • 它就像一个魅力,正是我想要的。请版主接受此为正确答案。非常感谢@pallavtrivedi
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 2012-10-31
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多