通过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-success
, x-cancel
和x-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方案