我正在实现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()
}
}
在不控制调用注册码次数的情况下,应用会调用注册码 每次启动应用程序。多次调用注册会导致任何问题吗?
答案 0 :(得分:3)
有许多方法可以在您的应用程序中实现快捷方式和Siri建议,只要它们遵循Human interface Guidelines set by apple.,您就不必担心实现。我相信您想注册向Siri Shortcuts捐款。
深入研究Apple's Example Code,以编写Siri快捷方式。我相信这是此事的最佳资源。这段代码非常详细,并有据可查。
“我应该注册几次?”
“我应该在哪里注册?”
每次用户执行操作时,您都应该注册捐款:
每次用户执行操作时表示意图有助于Siri 了解用户的行为,这有助于Siri更好地断言 当用户可能想再次执行该操作时。
因此,在您的情况下,我不会在AppDelegate
中注册捐赠,而是在按下按钮或用户执行其他操作(例如打开相机)时进行捐赠。大多数情况下,我将开发人员的组操作视为一个文件来更好地进行管理。.当用户激活了各自的操作时,请调用它们。