如何正确实现siri快捷方式

时间:2018-11-01 01:28:57

标签: ios swift siri sirishortcuts

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

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

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

我应该在哪里注册?

根据本教程,我将此代码添加到了视图控制器上。

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

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()
        } 
    }

我应该注册几次

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

1 个答案:

答案 0 :(得分:3)

有许多方法可以在您的应用程序中实现快捷方式和Siri建议,只要它们遵循Human interface Guidelines set by apple.,您就不必担心实现。我相信您想注册向Siri Shortcuts捐款。

深入研究Apple's Example Code,以编写Siri快捷方式。我相信这是此事的最佳资源。这段代码非常详细,并有据可查。

“我应该注册几次?”

“我应该在哪里注册?”

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

  

每次用户执行操作时表示意图有助于Siri   了解用户的行为,这有助于Siri更好地断言   当用户可能想再次执行该操作时。

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