如何正确实现siri快捷方式

Big*_*air 5 ios siri swift sirishortcuts

我正在实施 Siri Shortcut。我的目标是将功能的快捷方式添加到“设置”应用上的 SIRI 快捷方式。

为此,我需要先注册 NSUserActivity,然后处理来自应用程序委托的快捷方式调用。

问题是我不确定在哪里以及如何从我观看的教程中正确注册活动。

我应该在哪里注册?

根据教程,我在视图控制器上添加了这段代码。

由于 self.userActivity 可从应用程序委托访问,我想知道是否可以在应用程序委托中添加以下代码。

func registerShortcut() {

        if #available(iOS 12.0, *) {
            let activity = NSUserActivity(activityType: "jp.co.mycompany.MyApp.openCamera")
            activity.title = "Camera Shortcut"
            activity.isEligibleForSearch = true
            activity.isEligibleForPrediction = true

            self.userActivity = activity
            self.userActivity?.becomeCurrent()
        } 
    }
Run Code Online (Sandbox Code Playgroud)

我应该注册多少次

在不控制调用注册码的次数的情况下,应用程序将在每次启动应用程序时调用注册码。多次调用注册会导致任何问题吗?

RLo*_*llo 6

有很多方法可以在你的 app 中实现 Shortcuts 和 Siri Suggestions,只要它们遵循Apple 制定Human interface Guidelines。你不应该关心实施。我相信您想注册对 Siri Shortcuts 的行动捐赠。

深入了解Apple 的Siri Shortcuts 编程示例代码。我相信这是关于此事的最佳资源。这段代码非常详细并且有据可查。

“我应该注册多少次?”

“我应该在哪里注册?”

每次用户执行操作时,您都应该注册您的捐赠:

每次用户执行一个动作时捐赠意图有助于 Siri 了解用户的行为,这有助于 Siri 更好地预测用户何时可能想要再次执行该动作。

因此,在您的情况下,我不会在 中注册捐赠AppDelegate,而是在按下按钮或用户执行其他操作(例如打开相机)时进行。大多数情况下,我将开发人员的组操作放在一个文件中以更好地管理它们。然后在用户激活它们各自的操作时调用它们。