通过Swift中的深层链接运行其他应用的Siri快捷方式

快捷方式结束后返回您的应用

运行快捷方式很棒,但是您可能已经注意到,深链接必须打开“快捷方式”应用才能正常工作。 快捷方式结束后,我们如何返回到我们的应用程序?

对我们来说幸运的是,“快捷方式”应用程序支持x-callback-url标准,这是您通过URL将数据发送到其他应用程序并以其他URL形式取回某些东西的一种标准化方法。 看起来像这样:

shortcuts://x-callback-url/run-shortcut?name=[name]&x-success=[url]

[name]快捷方式成功执行时,“快捷方式”应用程序将自动尝试打开传递给x-success参数的URL。 这可以是任何url,我们可以通过注册自己的URL方案使用它返回到我们的应用程序。 假设我们的应用程序正在侦听myapp:// URL方案,则可以通过运行以下myapp://使Shortcuts应用程序路由回到我们的应用程序:

 let shortcut = "shortcuts://x-callback-url/run-shortcut?name=Take%20Picture&x-success=myapp://" 
 let url = URL(string: shortcut)! 
 UIApplication.shared.open(shortcut, 
options: [:],
completionHandler: nil)

除了x-successx-cancelx-error还可分别用于处理中断和错误。

其他深层链接

导入快捷方式

shortcuts://import-shortcut?url=[url]&name=[name]

对于此特定的快捷方式, url.shortcut文件的URL,而name是要导入的快捷方式的名称。 您还可以将&silent=true传递到此深层链接,以防止快捷方式应用程序打开导入的快捷方式。

此深层链接还支持x-callback-url

打开(不运行)特定的快捷方式

shortcuts://open-shortcut?name=[name]

打开快捷方式应用

shortcuts://

打开创建快捷方式屏幕

shortcuts://create-shortcut

打开快捷方式库

shortcuts://gallery

搜索快捷方式库

shortcuts://gallery/search?query=[query]

结论

由于您无法检索用户快捷方式列表,因此常规应用程序中的这些深层链接可能没有多少用处,但是它们对于诸如AirPods相机技巧之类的个人自动化项目非常有用。 您打算做什么?

在我的Twitter上关注我-@rockthebruno,让我知道您想分享的任何建议和更正。

参考书目和优秀读物

x-callback-url
Apple Docs:快捷方式URL方案