Flutter微信卡包管理插件wx_card的使用

Flutter微信卡包管理插件wx_card的使用

提供了 WxCardWxCardTile,用于创建视觉上吸引人的卡片及其单个磁贴。两者都继承自 WxSheet 类,提供了样式选项的基础。

WxCard 提供了卡片的一般结构,允许你通过头部、脚部和子部件来自定义内容。它提供了一个灵活的布局,包括垂直和水平方向。

WxCardTile 是一个专门设计用于在卡片内部使用的部件。它提供了一个预定义的布局,包含引导区、尾随区、标题和副标题区域。这使得更容易在卡片内创建一致且结构良好的磁贴。

这两个部件都继承了 WxSheet 的多种样式选项,例如背景颜色、边框、阴影等。这允许你根据应用的设计来定制卡片和磁贴的外观。

使用

请参见 示例

更多关于类和其他引用的信息,请参见 API 文档

赞助

如果你觉得这个插件或我创建的任何其他插件对你有帮助,请考虑赞助我,这样我可以花时间阅读问题、修复错误、合并拉取请求并为这些插件添加功能。


完整示例代码

import 'package:flutter/material.dart';
import 'package:theme_patrol/theme_patrol.dart';
import 'package:wx_card/wx_card.dart';
import 'package:wx_text/wx_text.dart';
import 'package:wx_button/wx_button.dart';
import 'theme_picker.dart';
import 'sample_appearance.dart';
import 'sample_severity.dart';
import 'sample_vertical.dart';
import 'sample_horizontal.dart';

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

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return ThemePatrol(
      themes: {
        'm2': ThemeConfig.withMode(
          description: 'Material 2',
          light: ThemeData.light(useMaterial3: false),
          dark: ThemeData.dark(useMaterial3: false),
          extensionsBuilder: [
            (context) => WxCardThemeM2(context),
            (context) => WxCardTileThemeM2(context),
            (context) => WxIconButtonThemeM2(context),
          ],
        ),
        'm3': ThemeConfig.withMode(
          description: 'Material 3',
          light: ThemeData.light(useMaterial3: true),
          dark: ThemeData.dark(useMaterial3: true),
          extensionsBuilder: [
            (context) => WxCardThemeM3(context),
            (context) => WxCardTileThemeM3(context),
            (context) => WxIconButtonThemeM3(context),
          ],
        ),
        'ios': ThemeConfig.withMode(
          description: 'iOS',
          light: ThemeData.light(useMaterial3: false),
          dark: ThemeData.dark(useMaterial3: false),
          extensionsBuilder: [
            (context) => WxCardThemeIOS(context),
            (context) => WxCardTileThemeIOS(context),
            (context) => WxIconButtonThemeIOS(context),
          ],
        ),
      },
      initialTheme: 'm2',
      builder: (context, theme, child) {
        return MaterialApp(
          title: 'WxCard Demo',
          theme: theme.lightData,
          darkTheme: theme.darkData,
          themeMode: theme.mode,
          home: const MyHomePage(),
          builder: theme.bootstrap(),
        );
      },
    );
  }
}

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return const Scaffold(
      body: SingleChildScrollView(
        child: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              SizedBox(height: 40),
              WxText.displayMedium(
                'WxCard',
                gradient: LinearGradient(
                  colors: [
                    Colors.green,
                    Colors.blue,
                  ],
                  begin: Alignment.topCenter,
                  end: Alignment.bottomCenter,
                ),
                fontWeight: FontWeight.bold,
                letterSpacing: -2,
              ),
              SizedBox(height: 10),
              ThemePicker(),
              SizedBox(height: 40),
              SampleAppearance(),
              SizedBox(height: 20),
              SampleSeverity(),
              SizedBox(height: 20),
              SampleVertical(),
              SizedBox(height: 20),
              SampleHorizontal(),
              SizedBox(height: 40),
            ],
          ),
        ),
      ),
    );
  }
}
1 回复

更多关于Flutter微信卡包管理插件wx_card的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,如果你想集成微信卡包管理功能,可以使用第三方插件 wx_card。这个插件可以帮助你实现微信卡包的添加、删除、展示等操作。以下是使用 wx_card 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 wx_card 插件的依赖:

dependencies:
  wx_card: ^latest_version

然后运行 flutter pub get 来获取插件。

2. 配置微信开放平台

在使用微信卡包功能之前,你需要在微信开放平台注册应用并获取 AppIDAppSecret。同时,你需要确保你的应用已经通过了微信的审核,并且已经开通了卡券功能。

3. 初始化插件

在你的 Flutter 项目中,首先需要初始化 wx_card 插件。通常在你的 main.dart 文件中进行初始化:

import 'package:wx_card/wx_card.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化微信卡包插件
  await WxCard.init(
    appId: 'your_app_id',
    universalLink: 'your_universal_link',
  );

  runApp(MyApp());
}

4. 添加卡券

使用 wx_card 插件添加卡券到微信卡包:

import 'package:wx_card/wx_card.dart';

Future<void> addCardToWx() async {
  try {
    final result = await WxCard.addCard(
      cardId: 'your_card_id',
      cardExt: 'your_card_ext',
    );
    
    if (result) {
      print('卡券添加成功');
    } else {
      print('卡券添加失败');
    }
  } catch (e) {
    print('添加卡券时出错: $e');
  }
}

5. 打开微信卡包

你可以使用 wx_card 插件直接打开微信卡包:

import 'package:wx_card/wx_card.dart';

Future<void> openWxCardPackage() async {
  try {
    final result = await WxCard.openCardPackage();
    
    if (result) {
      print('成功打开微信卡包');
    } else {
      print('打开微信卡包失败');
    }
  } catch (e) {
    print('打开微信卡包时出错: $e');
  }
}

6. 处理回调

微信卡包的操作可能会有回调,你可以在 wx_card 插件中处理这些回调:

import 'package:wx_card/wx_card.dart';

void handleWxCardCallback() {
  WxCard.onCardAddResult.listen((result) {
    if (result.isSuccess) {
      print('卡券添加成功');
    } else {
      print('卡券添加失败: ${result.errCode} - ${result.errMsg}');
    }
  });
}

7. iOS 配置

如果你在 iOS 平台上使用 wx_card 插件,你需要在 Info.plist 文件中添加以下配置:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLName</key>
    <string>weixin</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>your_app_id</string>
    </array>
  </dict>
</array>

同时,你还需要配置 Universal Links,确保微信可以正确回调到你的应用。

8. Android 配置

在 Android 平台上,你需要在 AndroidManifest.xml 文件中添加以下配置:

<activity
    android:name=".wxapi.WXEntryActivity"
    android:exported="true"
    android:launchMode="singleTask"
    android:taskAffinity="your_package_name"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="your_app_id" />
    </intent-filter>
</activity>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!