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

如何从Flutter应用中打开iOS快捷指令APP并添加Siri快捷指令?

实现方案

核心思路

利用iOS系统提供的Shortcuts URL Scheme,构造预配置好内容的URL,在Flutter中通过URL跳转唤起快捷指令APP,自动填充触发词和执行动作。

步骤1:添加依赖

在pubspec.yaml中加入url_launcher包,用于处理URL跳转:

dependencies:
  flutter:
    sdk: flutter
  url_launcher: ^6.1.12 # 请使用最新版本

步骤2:配置Info.plist

在iOS项目的Info.plist中添加URL Scheme白名单,允许应用唤起快捷指令APP:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>shortcuts</string>
</array>

步骤3:构造快捷指令配置并跳转

以下是完整代码示例,点击按钮即可唤起快捷指令APP,自动填充“当我说”(示例为打开我的应用)和“执行”(打开你的Flutter应用)的内容:

import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

class SiriShortcutCreator extends StatelessWidget {
  // 自定义语音触发词和应用专属URL Scheme(需提前配置)
  final String triggerPhrase = "打开我的应用";
  final String appScheme = "yourapp://"; // 替换为你的应用实际URL Scheme

  Future<void> _createSiriShortcut() async {
    // 构造快捷指令的JSON结构:包含语音触发规则和打开应用的动作
    final shortcutJson = {
      "actions": [
        {
          "identifier": "is.workflow.actions.openurl",
          "parameters": {
            "URL": appScheme
          }
        }
      ],
      "input": triggerPhrase,
      "trigger": {
        "identifier": "is.workflow.triggers.voice",
        "parameters": {
          "phrase": triggerPhrase
        }
      }
    };

    // 将JSON字符串进行URL编码,避免格式错误
    final encodedJson = Uri.encodeComponent(shortcutJson.toString());
    // 拼接Shortcuts的创建URL
    final url = "shortcuts://create-shortcut?name=打开我的应用&shortcut=$encodedJson";

    if (await canLaunchUrl(Uri.parse(url))) {
      await launchUrl(Uri.parse(url));
    } else {
      throw "无法唤起快捷指令APP,请检查是否已安装";
    }
  }

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: _createSiriShortcut,
      child: const Text("创建Siri快捷指令"),
    );
  }
}

关键补充说明

  1. 应用URL Scheme配置:需要在iOS项目的Info.plist中提前配置应用专属URL Scheme,确保快捷指令能正确打开你的应用:
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>yourapp</string> <!-- 替换为你的自定义Scheme -->
    </array>
  </dict>
</array>
  1. 自定义执行动作:如果需要添加更复杂的操作,可以修改actions数组内容,参考苹果官方的快捷指令动作文档来配置对应的动作标识符和参数。
  2. 系统版本要求:该方案仅支持iOS 12及以上版本(Shortcuts APP正式推出的版本),需确保用户设备系统版本符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:35:20