Siri意图捐赠用于捷径的结果出现错误

9
我已经为Siri快捷方式创建了一个简单的意图,但每当我尝试捐赠该意图时,就会出现以下错误。
交互捐赠失败:%@ 错误域=IntentsErrorDomain Code=1901 “无法捐赠交互 { 意图 = { 用户 = ; 标识符 = 06DE1A38-6D46-4CB8-B825-3788E6A81420; }; 日期间隔 = <_NSConcreteDateInterval: 0x60000043cce0> (开始日期) 2018-07-17 12:38:39 +0000 + (持续时间) 0.000000 秒 = (结束日期) 2018-07-17 12:38:39 +0000; 意图响应 = ; 组标识符 = ; 意图处理状态 = 未指定; 标识符 = F145FA84-7147-41A8-8698-681F06C8CEB5; 方向 = 未指定; } 带有没有有效快捷方式类型的意图” UserInfo={NSLocalizedDescription=无法捐赠交互 { 意图 = { 用户 = ; 标识符 = 06DE1A38-6D46-4CB8-B825-3788E6A81420; }; 日期间隔 = <_NSConcreteDateInterval: 0x60000043cce0> (开始日期) 2018-07-17 12:38:39 +0000 + (持续时间) 0.000000 秒 = (结束日期) 2018-07-17 12:38:39 +0000; 意图响应 = ; 组标识符 = ; 意图处理状态 = 未指定; 标识符 = F145FA84-7147-41A8-8698-681F06C8CEB5; 方向 = 未指定; } 带有没有有效快捷方式类型的意图}

以下是我的意图捐赠代码。
func donateInteraction() {
        let intent = GetBalanceIntent()
        intent.suggestedInvocationPhrase = "Get Balance"
        let interaction = INInteraction(intent: intent, response: nil)
        interaction.donate { (error) in
            if error != nil {
                if let error = error as NSError? {
                    print("Interaction donation failed: %@", error)
                } else {
                    print("Successfully donated interaction")
                }
            }
        }
    }

你能给我看一下你的.intentdefinition文件吗?打印出来就可以了。 - mtrevia
3个回答

11

我忘记初始化自定义属性(即上述示例中的用户)在定义文件中定义的该属性。

添加它解决了问题。代码如下:

func donateInteraction() {
        let intent = GetBalanceIntent()
        intent.suggestedInvocationPhrase = "Get Balance"
        intent.user = "vittal"
        let interaction = INInteraction(intent: intent, response: nil)
        interaction.donate { (error) in
            if error != nil {
                if let error = error as NSError? {
                    print("Interaction donation failed: %@", error)
                } else {
                    print("Successfully donated interaction")
                }
            }
        }
    }

你真的需要添加所有属性,即使是那些不可选的枚举(我认为它们应该有默认值)。 - ph1lb4

3

enter image description here

我曾经遇到过同样的问题,后来我意识到我的 Swift 文件中的 INIntent 子类名称与 .intentdefinition 中的名称不匹配,希望这能帮助到某些人。


嘿,你能成功运行多个意图吗? - Mr. Bean

1

您的意图定义文件应具有有效的快捷方式类型。您可以在快捷方式类型下添加这些内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接