5

我正在实施 Siri 快捷方式。我的目标是在设置应用程序上向 SIRI SHORTCUT 添加功能快捷方式。

为此,我需要先注册 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()
        } 
    }

我应该注册多少次

在不控制调用注册码的次数的情况下,每次启动应用都会调用注册码。多次调用注册是否会导致任何问题?

4

1 回答 1

6

有很多方法可以在您的应用程序中实现快捷方式和 Siri 建议,只要它们遵循苹果制定的人机界面指南即可。你不应该担心实施。我相信您想注册对 Siri Shortcuts 的行动捐赠。

深入了解Apple编写 Siri 快捷方式的示例代码。我相信这是关于此事的最佳资源。此代码非常详细且有据可查。

“我应该注册多少次?”

“我应该在哪里注册?”

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

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

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

于 2018-11-01T02:46:53.927 回答