未调用SiriKit扩展名

问题描述 投票:1回答:1

我正在使用测试应用和扩展程序来尝试SiriKit驱魔。我的分机号根本没有被呼叫,我也不知道为什么。我在另一个应用程序中有一个正在运行的SiriKit扩展程序,该扩展程序莫名其妙地停止了响应-因此该测试应用程序。

以下是我在测试应用中设置SiriKit所做的工作:

1)将Siri权利添加到应用程序目标:enter image description here

2)在应用程序的info.plist中添加了Siri使用说明:enter image description here

3)添加了一个新的Intents Extension测试目标,并将我想要的Intent添加到了扩展info.plist:enter image description here

4)连接了IntentHandler类:

class IntentHandler: INExtension {
override func handler(for intent: INIntent) -> Any {
    print("IntentHandler.handle")
    switch intent {
        case is INAddTasksIntent: return AddIntentHandler()
        default: break
    }
    return self
}
}

5)创建了我的处理程序类:

class AddIntentHandler: NSObject, INAddTasksIntentHandling {
func handle(intent: INAddTasksIntent, completion: @escaping (INAddTasksIntentResponse) -> Void) {
    print("AddIntentHandler.handle")
    return completion(INAddTasksIntentResponse(code: .success, userActivity: nil))
}
}

6)在AppDelegate中获得使用Siri的权限:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    INPreferences.requestSiriAuthorization({ status in
        if status == .authorized {
            print("Ok - authorized")
        }
    })
    return true
}

7)向应用程序添加了AppIntentVocabulary.plist文件(我也测试过将其添加到扩展名中):enter image description here

8)我再次检查了扩展名是否嵌入在应用程序目标中:enter image description here

9)并且扩展目标显示了正确的支持意图:enter image description here

10)在目标部署信息区域中再次检查应用程序和扩展目标是否至少需要iOS版本13.2:enter image description here

11)然后,我将该应用程序安装在运行iOS 13.3的iPhone上,在启动后给Siri权限,然后尝试使用Siri添加培根。它根本不会调用我的扩展程序,而是将其添加到内置的提醒应用中。

12)我直接从设备上的XCode启动扩展,相同的交易-我的扩展从未被调用。

我知道注册Siri语言可能要花一些时间,但好几天以来我一直在搞砸:enter image description here

不确定是否相关,但是就像我说的那样,我让Siri在其他应用中工作-未部署到应用商店。我花了一些时间来处理应用程序中的其他功能,现在又回到Siri集成中,只是发现它不再响应了。我回滚到Siri工作的最后一次已知提交,只是发现它现在在那个(已知良好)提交中也不起作用。

帮助!我已经为此失去了几天!这是怎么回事或我想念什么?!

我正在使用测试应用和扩展程序来尝试SiriKit驱魔。我的分机号根本没有被呼叫,我也不知道为什么。我在另一个应用程序中有一个正常工作的SiriKit扩展,... ...>

ios swift siri sirikit
1个回答
1
投票

因此,事实证明问题出在我试图调用我的应用扩展程序的语言是100%。

谁知道这不起作用,“ Appname,将培根添加到列表中”,但这将:“将Bacon添加到AppName列表中”。如果您以应用程序名称开头,则“提醒”会捕获它并将其放在提醒列表中。

© www.soinside.com 2019 - 2024. All rights reserved.