我正在使用图像选择器在 react-native android 中选择动画 webp 图像,并且可以添加静态贴纸,但无法添加动画贴纸包。为了避免文件类型问题,我使用了来自 WhatsApp 的示例动画贴纸资产的示例贴纸。(在 50kb 和 3 个动画 webp 文件下,尺寸为 96x96 的 png 托盘图标)
我正在使用react-native-whatsapp-sticker并根据 repo react-native-dynamic-whatsapp-sticker对其进行了修改。这些模块自 2-3 年以来没有更新,因此 repo 不包含动画贴纸的代码。因此,我使用 WhatsApp 示例应用程序编译了我的模块并进行了相应的更改。如果我将动画贴纸包设置为 false,则构建 apk 并添加贴纸没有错误。但是设置“animated_sticker_pack”=true 然后添加贴纸包,WhatsApp 显示错误为“这个包有问题......”。
下面是模块文件的代码和链接。我一直在努力解决它,但未能成功。提前致谢。
代码:
let pack = {
"identifier": 'id1',
"name": 'name1',
"publisher": 'pub',
"tray_image_file": tray,
"publisher_email": Meta['EMAIL'],
"publisher_website": Meta['SITE'],
"privacy_policy_website": Meta['POLICY'],
"license_agreement_website": Meta['LICENSE'],
"image_data_version":"1",
"avoid_cache":true,
"animated_sticker_pack":true, // if false then works fine for static sticker
"stickers": stickers // array of {image_file:image.uri, emojis:['', ''],}
}
const send = (pack) => {
return RNWhatsAppStickers.prepare(JSON.stringify(pack))
.then(str => JSON.parse(str.slice('1')) ) // {"animated_sticker_pack": 1, "identifier": "id1", "isWhitelisted": 0, "name": "name1", "publisher": "pub"}
.then(res => RNWhatsAppStickers.send(res.identifier,res.name) )
}
所有负责将贴纸发送到 WhatsApp 的 5 个 java 文件。 https://github.com/CrackerKSR/temporary