>可以在任何类型的应用程序中使用Siri快捷方式吗?因为SiriKit只在旅游,聊天等工作.
>现在使用快捷方式.我可以跳转到我的应用程序显示Siri的特定页面吗?
Can Siri shortcuts be used in any type of app? Because of SiriKit only
working in tourism, chatting etc.
是的,任何.它们与任何特定域无关.他们是定制的.
Now using shortcuts. Can I jump to my app showing specific page by
Siri?
是.
下面的代码显示了如何通过Siri显示特定页面的最简单方法,它通过NSUserActivity称为“捐赠快捷方式”.但是你可以通过定义自定义INIntent来实现同样的目的.
步骤1:
在Info.plist中,在NSUserActivityTypes下添加一个活动类型字符串:com.app.viewPage
第2步:
创建活动:
let viewPageActivityType = "com.app.viewPage" let viewPageActivity: NSUserActivity = { let userActivity = NSUserActivity(activityType: viewPageActivityType) userActivity.title = "View Page" userActivity.suggestedInvocationPhrase = "View Page" userActivity.isEligibleForSearch = true userActivity.isEligibleForPrediction = true return userActivity }()
然后将其添加到视图控制器:
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() userActivity = viewPageActivity } }
第3步:
在UIApplicationDelegate方法中处理它(如果用户按下快捷方式,则会调用此方法,或者通过语音从Siri激活此方法):
public func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { if userActivity.activityType == viewPageActivityType { print("open the `ViewController` here") return true } return false }
用户打开ViewController一次后,他们可能会在锁定屏幕和搜索建议中看到它.他们也可以去设置 – > Siri&搜索 – >我的快捷方式,用于定义自定义短语以使用语音执行操作.
要调试它,请确保使用设备(而不是模拟器).然后转到设置 – >开发者 – >启用“显示最近的快捷方式”和“在锁定屏幕上显示捐赠”.
这有很多很棒的资源:
> Apple Sample Code
> Introduction to Siri Shortcuts WWDC Session
> Donating Shortcuts Docs
> Relevant Shortcuts Docs