Flutter快捷操作插件quick_actions_ios的使用

发布于 1周前 作者 sinazl 来自 Flutter

quick_actions_ios

quick_actions_ios 是 Flutter 插件 quick_actions 的 iOS 实现部分。

使用方法

这个插件是被推荐的,这意味着你可以正常地使用 quick_actions。当你这样做时,这个包会自动包含在你的应用程序中,因此你不需要在 pubspec.yaml 文件中添加它。

然而,如果你直接导入这个包来使用它的任何 API,那么你需要像往常一样在 pubspec.yaml 中添加它。

贡献

如果你想为插件做出贡献,请查看我们的贡献指南。

示例代码

以下是一个完整的示例 demo,展示了如何使用 quick_actions_ios 插件:

// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// ignore_for_file: public_member_api_docs

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

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Quick Actions Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String shortcut = 'no action set'; // 初始化快捷操作类型

  [@override](/user/override)
  void initState() {
    super.initState();

    final QuickActionsIos quickActions = QuickActionsIos(); // 创建快捷操作实例
    quickActions.initialize((String shortcutType) { // 初始化快捷操作回调
      setState(() {
        shortcut = shortcutType; // 设置当前快捷操作类型
      });
    });

    quickActions.setShortcutItems(<ShortcutItem>[ // 设置快捷操作项
      const ShortcutItem( // 第一个快捷操作项
        type: 'action_one', // 操作类型
        localizedTitle: 'Action one', // 标题
        localizedSubtitle: 'Action one subtitle', // 副标题
        icon: 'AppIcon', // 图标名称
      ),
      const ShortcutItem( // 第二个快捷操作项
          type: 'action_two', // 操作类型
          localizedTitle: 'Action two', // 标题
          icon: 'ic_launcher'), // 图标名称
    ]).then((void _) {
      setState(() {
        if (shortcut == 'no action set') {
          shortcut = 'actions ready'; // 如果没有设置快捷操作,则显示“actions ready”
        }
      });
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(shortcut), // 显示当前快捷操作类型
      ),
      body: const Center(
        child: Text('在主屏幕上长按应用图标以获取“Action one”或“Action two”选项。点击该操作应设置工具栏标题。'),
      ),
    );
  }
}

更多关于Flutter快捷操作插件quick_actions_ios的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter快捷操作插件quick_actions_ios的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成和使用quick_actions_ios插件的详细步骤,包括一些示例代码。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加quick_actions_ios依赖。

dependencies:
  flutter:
    sdk: flutter
  quick_actions_ios: ^x.y.z  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

2. 配置iOS项目

由于quick_actions_ios是一个iOS特定的插件,你需要在Xcode中进行一些配置。

  1. 打开ios/Runner.xcworkspace
  2. 选择你的项目目标(Runner)。
  3. 在“Signing & Capabilities”标签页中,添加“Background Modes”功能。
  4. 勾选“Background fetch”和“Remote notifications”(根据你的需求选择)。

3. 初始化插件

在你的Flutter代码中,你需要初始化QuickActionsIos插件。这通常在应用的入口文件(如main.dart)中进行。

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

void main() {
  runApp(MyApp());

  // 初始化插件
  QuickActionsIos.initialize().then((_) {
    // 监听快捷操作事件
    QuickActionsIos.shortcutItems.listen((shortcutItems) {
      for (var item in shortcutItems) {
        if (item.type == 'com.example.action.type1') {
          // 处理特定快捷操作
          print('Type 1 shortcut pressed');
          // 执行相关操作
        } else if (item.type == 'com.example.action.type2') {
          // 处理另一个快捷操作
          print('Type 2 shortcut pressed');
          // 执行相关操作
        }
      }
    });
  });
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Quick Actions Example'),
        ),
        body: Center(
          child: Text('Check the console for shortcut actions'),
        ),
      ),
    );
  }
}

4. 设置快捷操作

在iOS项目中,你需要在Info.plist文件中添加快捷操作配置。打开ios/Runner/Info.plist,并添加以下内容:

<key>UIApplicationShortcutItems</key>
<array>
    <dict>
        <key>UIApplicationShortcutItemIconType</key>
        <string>UIApplicationShortcutIconTypeAdd</string>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Action 1</string>
        <key>UIApplicationShortcutItemType</key>
        <string>com.example.action.type1</string>
    </dict>
    <dict>
        <key>UIApplicationShortcutItemIconType</key>
        <string>UIApplicationShortcutIconTypeSearch</string>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Action 2</string>
        <key>UIApplicationShortcutItemType</key>
        <string>com.example.action.type2</string>
    </dict>
</array>

5. 测试快捷操作

现在,你可以运行你的Flutter应用,并在iOS设备上长按应用图标来查看快捷操作。当你选择一个快捷操作时,它会在控制台中打印相应的消息。

总结

通过上述步骤,你可以在Flutter项目中集成和使用quick_actions_ios插件来处理iOS设备的快捷操作。记得替换示例代码中的快捷操作类型和标题为你自己的需求。

回到顶部