whatsapp_stickers_exporter 1.0.0 copy "whatsapp_stickers_exporter: ^1.0.0" to clipboard
whatsapp_stickers_exporter: ^1.0.0 copied to clipboard

Export sticker pack to WhatsApp from asset or file.

whatsapp_stickers_exporter #

A flutter plugin that exports stickers to WhatsApp.

Supports iOS and Android.

Supports both static and animated stickers.

Tested on iOS and Android.

Example #

See an Android/iOS app utilizing this package here: https://github.com/star-39/msb_app,

which, including this package, is part of the moe-sticker-bot project.

Install From Asset #

Add your image to flutter assets.

flutter:
   assets:
     - images/01_Cuppy_smile.webp
     - images/02_Cuppy_lol.webp
     - images/03_Cuppy_rofl.webp
     - images/tray_Cuppy.png
//This somehow confusing list of list data type is to make sure stickers exported to 
//platform will preserve their order.
//['sticker path', 'emoji', 'emoji(optional)', 'emoji(optional)', 'emoji(optional)']
const stickerAssets = [
    ['images/01_Cuppy_smile.webp', '☕', '🙂'],
    ['images/02_Cuppy_lol.webp', '😄', '😀'],
    ['images/03_Cuppy_rofl.webp', '😄', '😀'],
];

List<List<String>> stickerSet = [];

for (var s in stickerAssets) {
    var stickerObject = <String>[];
    stickerObject.add(WhatsappStickerImage.fromAsset(s[0]).path);
    stickerObject.addAll(s.sublist(1, s.length));
    stickerSet.add(stickerObject);
}

var trayImage =
    WhatsappStickerImage.fromAsset("images/tray_Cuppy.png").path;

var exporter = WhatsappStickersExporter();
try {
    await exporter.addStickerPack(
        "my_identifier", //identifier
        "my_name", //name
        "my_author", //publisher
        trayImage, //trayImage
        "", //publisherWebsite
        "", //privacyPolicyWebsite
        "", //licenseAgreementWebsite
        false, //animatedStickerPack
        stickerSet);
} catch (e) {
    log(e.toString());
}

Install From Remote File #

const animatedAssets = [
    ['01_SendingLove.webp', "💕", "😘", "❤️"],
    ["02_WellDoThisTogether.webp", "✊", "💪", "🙏"],
    ["03_Heart.webp", "❤️", "😘", "💕"]
];

var appDir = await getApplicationDocumentsDirectory();
var ssDir = Directory('${appDir.path}/stickers');
await ssDir.create(recursive: true);

final dio = Dio();
final downloads = <Future>[];

for (var a in animatedAssets) {
    downloads.add(
    dio.download(
        'https://github.com/WhatsApp/stickers/raw/main/iOS/WAStickersThirdParty/${a[0]}',
        '${ssDir.path}/${a[0]}',
    ),
    );
}
downloads.add(dio.download("https://github.com/WhatsApp/stickers/raw/main/iOS/WAStickersThirdParty/tray_TogetherAtHome.png",
    '${ssDir.path}/tray.png'));

await Future.wait(downloads);

List<List<String>> stickerSet = [];

for (var s in animatedAssets) {
    var stickerObject = <String>[];
    stickerObject
        .add(WhatsappStickerImage.fromFile('${ssDir.path}/${s[0]}').path);
    stickerObject.addAll(s.sublist(1, s.length));
    stickerSet.add(stickerObject);
}

var trayImage =
    WhatsappStickerImage.fromFile('${ssDir.path}/tray.png').path;

var exporter = WhatsappStickersExporter();
try {
    await exporter.addStickerPack(
        "my_identifier", //identifier
        "My Title", //name
        "my publisher", //publisher
        trayImage, //trayImage
        "", //publisherWebsite
        "", //privacyPolicyWebsite
        "", //licenseAgreementWebsite
        true, //animatedStickerPack
        stickerSet);
} catch (e) {
    log(e.toString());
}

Notes #

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>whatsapp</string>
</array>

License #

BSD License

See also: https://github.com/WhatsApp/stickers/blob/main/LICENSE

Credits #

https://github.com/applicazza/whatsapp_stickers for some code base.

11
likes
110
points
95
downloads

Publisher

verified publishermsb.cloudns.asia

Weekly Downloads

Export sticker pack to WhatsApp from asset or file.

Repository (GitHub)

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on whatsapp_stickers_exporter