Flutter WhatsApp贴纸管理插件flutter_whatsapp_stickers的使用

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

Flutter WhatsApp贴纸管理插件flutter_whatsapp_stickers的使用

pub package

注意:此插件仍在开发中,目前仅支持Android。 欢迎反馈和Pull Requests!

开始使用

pubspec.yaml文件中添加flutter_whatsapp_stickers作为依赖。

查看示例目录以获取示例应用。

Android配置

app\build.gradle文件中添加以下选项。这将防止所有WebP文件被压缩。

android {
    aaptOptions {
        noCompress "webp"
    }
}

打包资源

你需要在pubspec.yaml文件中包含你的资源。

flutter:
  assets:
    - sticker_packs/sticker_packs.json
    - sticker_packs/1/

动态内容

如果你使用的资源不是捆绑在构建中的,那么你需要在Manifest文件中添加以下内容。请注意,你不能同时使用这两种方式。

<meta-data android:name="NonAssetContentProvider" android:value="true" />

贴纸包内容文件

要更改贴纸包文件,向app\build.gradle文件中添加此Build Config字段。默认值为sticker_packs.json

buildConfigField("String", "STICKER_PACK_FILE", "\"sticker_packs.json\"")

iOS集成

目前,iOS不支持。对于iOS的支持,欢迎Pull Requests。

方法

检查WhatsApp是否已安装。

bool whatsAppInstalled = await WhatsAppStickers.isWhatsAppInstalled;

检查WhatsApp消费者包是否已安装。

bool whatsAppConsumerAppInstalled = await WhatsAppStickers.isWhatsAppConsumerAppInstalled;

检查WhatsApp商业包是否已安装。

bool whatsAppSmbAppInstalled = await WhatsAppStickers.isWhatsAppSmbAppInstalled;

检查一个贴纸包是否已安装。

_stickerPackInstalled = await WhatsAppStickers().isStickerPackInstalled(_stickerPackIdentifier);

向WhatsApp添加一个贴纸包。

WhatsAppStickers().addStickerPack(
  packageName: WhatsAppPackage.Consumer,
  stickerPackIdentifier: _stickerPackIdentifier,
  stickerPackName: _stickerPackName,
  listener: _listener,
);

更新贴纸包内容并通知监听器。

WhatsAppStickers().updatedStickerPacks(_stickerPackIdentifier);

添加贴纸包的监听器。

Future<void> _listener(StickerPackResult action, bool result, {String error}) async {
    // 在这里做你需要做的事情
}

如何创建自定义的stickers_packs.json文件。

void createLocalFile() async {
  String dir = (await getApplicationDocumentsDirectory()).path;
  Directory stickersDirectory = Directory("$dir/sticker_packs");
  if (!await stickersDirectory.exists()) {
    await stickersDirectory.create();
  }

  File jsonFile = File('$dir/sticker_packs/sticker_packs.json');
  String content = jsonEncode(stickerPacks);
  jsonFile.writeAsStringSync(content);
}

示例代码

以下是main.dart的示例代码:

import 'package:flutter/material.dart';
import 'package:whatsapp_stickers_example/information.dart';
import 'package:whatsapp_stickers_example/static.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  final String title = 'WhatsApp Stickers Demo';

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: title,
      home: DefaultTabController(
        length: 2,
        child: Scaffold(
          appBar: AppBar(
            title: Text(title),
            bottom: TabBar(
              tabs: [
                Tab(text: "Information"),
                Tab(text: "Sticker Packs"),
              ],
            ),
          ),
          body: TabBarView(
            children: [
              WhatsAppInformation(),
              StaticContent(),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter WhatsApp贴纸管理插件flutter_whatsapp_stickers的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter WhatsApp贴纸管理插件flutter_whatsapp_stickers的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,关于flutter_whatsapp_stickers插件的使用,下面是一个基本的代码示例,展示了如何在Flutter应用中集成和管理WhatsApp贴纸包。

首先,确保你的Flutter项目已经设置好,并且在pubspec.yaml文件中添加了flutter_whatsapp_stickers依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_whatsapp_stickers: ^最新版本号 # 请替换为实际发布的最新版本号

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

接下来,在你的Flutter项目中,你可以按照以下步骤来使用flutter_whatsapp_stickers插件:

  1. 导入插件

在你的Dart文件中导入插件:

import 'package:flutter_whatsapp_stickers/flutter_whatsapp_stickers.dart';
  1. 创建贴纸包

创建一个贴纸包需要定义贴纸包的元数据以及贴纸列表。以下是一个示例:

void createStickerPack() async {
  try {
    // 定义贴纸包的元数据
    final StickerPackMetaData metaData = StickerPackMetaData(
      identifier: 'com.example.mypack', // 贴纸包的唯一标识符
      name: 'My Sticker Pack', // 贴纸包的名称
      publisher: 'My Publisher', // 发布者名称
      trayImageFile: 'assets/tray_image.png', // 托盘图像路径
      publisherEmail: 'example@example.com', // 发布者的电子邮件
      publisherWebsite: 'https://example.com', // 发布者的网站
      privacyPolicyWebsite: 'https://example.com/privacy', // 隐私政策网站
      licenseAgreementWebsite: 'https://example.com/license', // 许可协议网站
    );

    // 定义贴纸列表
    final List<Sticker> stickers = [
      Sticker(
        imageFile: 'assets/sticker1.png', // 贴纸图像路径
        emojis: ['😊'], // 与贴纸相关的表情符号
      ),
      Sticker(
        imageFile: 'assets/sticker2.png',
        emojis: ['😎'],
      ),
      // 添加更多贴纸...
    ];

    // 创建贴纸包
    await FlutterWhatsAppStickers.createStickerPack(metaData, stickers);
    print('Sticker pack created successfully.');
  } catch (e) {
    print('Error creating sticker pack: $e');
  }
}

注意:确保你的assets文件夹中包含所有引用的图像文件,并在pubspec.yaml中正确声明这些资源。

  1. 添加贴纸包到WhatsApp

创建贴纸包后,你可以提示用户将其添加到WhatsApp:

void addToWhatsApp() async {
  try {
    bool isAdded = await FlutterWhatsAppStickers.isStickerPackAdded(
      packIdentifier: 'com.example.mypack', // 贴纸包的唯一标识符
    );

    if (!isAdded) {
      bool result = await FlutterWhatsAppStickers.addToWhatsApp(
        packIdentifier: 'com.example.mypack',
      );

      if (result) {
        print('Sticker pack added to WhatsApp successfully.');
      } else {
        print('Failed to add sticker pack to WhatsApp.');
      }
    } else {
      print('Sticker pack is already added to WhatsApp.');
    }
  } catch (e) {
    print('Error checking or adding sticker pack: $e');
  }
}
  1. 在UI中调用

你可以在你的Flutter应用的UI中添加按钮来触发上述功能,例如:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('WhatsApp Sticker Manager'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                onPressed: createStickerPack,
                child: Text('Create Sticker Pack'),
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: addToWhatsApp,
                child: Text('Add to WhatsApp'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

这个示例展示了如何创建贴纸包并将其添加到WhatsApp。请确保在实际部署前测试所有功能,并根据需要调整代码以适应你的具体需求。

回到顶部