You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过URL Scheme自动创建Shortcuts快捷指令?求经验分享

解决iOS快捷指令自动预创建(保留手动保存步骤)的问题

你当前的问题出在URL Scheme的参数使用错误——url参数并不是用来传递快捷指令内容的,正确参数是shortcut,而且需要传入Base64编码后的快捷指令JSON数据,而非URL编码内容。

以下是具体实现步骤和示例代码:

1. 获取快捷指令的JSON模板

先在「快捷指令」APP里创建目标模板指令,长按指令→分享→拷贝快捷指令,将拷贝内容粘贴到文本编辑器中,即可得到对应的快捷指令JSON字符串。

2. 对JSON字符串进行Base64编码

把拿到的JSON字符串转换成Base64编码(注意不要包含多余空格或换行),Swift中可这样处理:

let shortcutJSON = """
{
  "WFWorkflowActions": [
    {
      "WFWorkflowActionIdentifier": "is.workflow.actions.alert",
      "WFWorkflowActionParameters": {
        "WFAlertActionMessage": "Hello from Auto-Created Shortcut",
        "WFAlertActionTitle": "Test"
      }
    }
  ],
  "WFWorkflowClientVersion": "1.7",
  "WFWorkflowIcon": {
    "WFWorkflowIconGlyphNumber": 59519,
    "WFWorkflowIconImageData": null,
    "WFWorkflowIconStartColor": 4294924031
  },
  "WFWorkflowName": "Auto-Created Test",
  "WFWorkflowTypes": [
    "NCWidget",
    "WatchKit",
    "ActionExtension"
  ]
}
"""

// 转成Base64
guard let jsonData = shortcutJSON.data(using: .utf8),
      let base64String = jsonData.base64EncodedString(options: .endLineWithLineFeed) else {
    return
}

3. 构造正确的Shortcuts URL Scheme

用shortcut参数传入Base64编码后的内容,同时可通过name参数预设指令名称:

let shortcutURLString = "shortcuts://create-shortcut?name=Auto-Created Test&shortcut=\(base64String)"
guard let createShortcutURL = URL(string: shortcutURLString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!) else {
    return
}

UIApplication.shared.open(createShortcutURL, options: [:], completionHandler: { success in
    if success {
        // 成功打开快捷指令APP,用户可看到预填充好的指令,手动点击保存即可
    } else {
        // 处理打开失败的情况
    }
})

关键注意事项

  • 确保JSON格式完全符合快捷指令规范,导出的模板JSON是最可靠的参考
  • Base64编码需基于UTF-8编码的JSON数据,避免出现编码错误
  • iOS 12及以上版本基本支持该URL Scheme,部分参数可能在新版本有微调

这样处理后,调用代码会直接打开快捷指令APP并加载预设的指令内容,用户仅需手动完成保存操作,符合你保留交互步骤的需求。

内容的提问来源于stack exchange,提问作者l0tze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 04:55:04