如何使用 Expo EAS 为 React Native 中的 组件启用动画 webp?

2024-02-23

使用 Expo EAS 构建时,动画 gif 在 Android 中可以工作,但动画 webp (awebp) 则不能。

Why?
如何让 awebp 工作?


为什么 gif 动画可以用,但它却不起作用?

  • React Native 有动画图像支持多种格式 https://reactnative.dev/docs/image#gif-and-webp-support-on-android但它是可选的并且需要内置。
  • 默认情况下,Expo EAS 将它们全部构建在动画 webp 之外,因为……

默认情况下它是禁用的,因为 RN 并不真正支持 iOS 上的动画 webp。您必须使用外部库才能使用它,例如快速图像。 Expo 尝试统一 API,如果 iOS 和 Android 上的行为差异很大,它会选择适用于两者的默认行为。

Cedric(世博会团队成员)来自 Discord

如何启用

  • 创建一个EAS 配置插件 https://docs.expo.dev/guides/config-plugins/#what-are-plugins.
  • 将插件文件添加到您的项目中。
  • 添加对文件的引用pluginseas 配置文件的密钥。

这是配置插件。

// withAnimatedWebp.js

const { createRunOncePlugin, withGradleProperties } = require('@expo/config-plugins');

const withAnimatedWebp = (config) => {
  const itemToModify = {
    type: 'property',
    key: 'expo.webp.animated',
    value: 'true',
  };

  return withGradleProperties(config, (config) => {
    config.modResults = config.modResults.filter(
      (item) => !(item.type === itemToModify.type && item.key === itemToModify.key)
    );

    config.modResults.push(itemToModify);

    return config;
  });
};

module.exports = createRunOncePlugin(withAnimatedWebp, 'animated-webp-support', '1.0.0');
# inside app.config.json
plugins: ['./eas_build_config_plugins/withAnimatedWebp'],

Credit to @wodin for pointing me in the right direction on the Expo forums https://forums.expo.dev/t/animated-webp-expected-to-work-with-eas-builds/58960/5.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Expo EAS 为 React Native 中的 组件启用动画 webp? 的相关文章

随机推荐

  • 如何使用html、php在网页中显示视频

    如何使用html php 在网页中显示视频 任何示例代码 请任何人帮忙 如果您正在寻找 Flash 播放器 我建议您流动播放器 http flowplayer org 如果您正在寻找 HTML 5 视频 请前往there http hack
  • 是否可以重写派生类中的静态方法?

    我在基类中定义了一个静态方法 我想在其子类中重写该方法 这可能吗 我尝试了这个 但它没有按我的预期工作 当我创建类 B 的实例并调用其 callMe 方法时 将调用类 A 中的静态 foo 方法 public abstract class
  • Rails 3 SQLite3 布尔值 false

    我试图在 SQLite3 表中插入一个假布尔值 但它总是插入一个真值 这是我的迁移 class CreateUsers lt ActiveRecord Migration def self up create table users do
  • 通过 IMain 获取 scala repl 内的类型信息

    Intent I am 试图添加 https groups google com forum fromgroups topic scala internals DdSg qxOvyo支持 kind命令到scala questions tag
  • Xcode 警告:指定的输入编码是 Unicode (UTF-8),但文件内容显示为 Unicode (UTF-16);视为 Unicode (UTF-16)

    我使用以下命令创建 strings 文件genstrings命令 该命令的输出文件使用 UTF 16 编码 但是当我将生成的 strings 文件添加到我的项目中然后 bild 时 Xcode 显示警告 指定的输入编码为 Unicode U
  • express.Router() 返回未定义

    我正在尝试设置一个在我的 node js HTTP 服务器上运行的 REST API 对于常规调用 我希望路径是 对于 API 调用 我想使用 API 根据我从各个网页收集到的信息 包括http expressjs com guide ro
  • 将图像添加到表格单元格 (iOS)

    我正在尝试做一些类似于 Twitter 或 Facebook 的事情 UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath ind
  • 如何使用 Java (J2SE) 创建 QRCode

    如何使用普通j2se创建QRcode图像 有任何 API 或类可以用来执行此操作吗 为此 您需要下载以下 jar zxing core 1 7 jar zxing javase 1 7 jar from http code google c
  • 有没有办法在for循环中添加多个条件?

    n int raw input enter the number of mcnuggets you want to buy total number of mcnuggets you want yo buy for a in range 1
  • JS 字符串:替换为正则表达式中的索引

    我对正则表达式几乎没有经验 我想知道如何替换由正则表达式标识的字符串中的部分 其中索引是标识部分的一部分 这是我的示例字符串 let exampleStr How do I 0 the n with the 1 in my array 这是
  • 启用 nginx 分块传输编码

    看起来像nginx 0 8 35 可能支持分块传输编码 http nginx org en CHANGES 2010 年 4 月 1 日 nginx 0 8 35 的变化 Change now the charset filter runs
  • 项目参考与文件参考?

    可以通过两种方式在项目中添加引用 项目参考 文件参考 但是 什么时候使用 Project 什么时候使用 File 引用 您没有指定 但我猜您指的是 Visual Studio 项目引用和文件引用之间的主要区别在于是否提供实时更新 在项目参考
  • SASS中有多行吗? [复制]

    这个问题在这里已经有答案了 我无法从 SASS 文档中弄清楚这一点 例如我想使用带有 5 个参数的 Compass mixin link colors normal hover false active false visited fals
  • 如何在Meteor服务器中获取用户IP地址?

    我想在我的流星应用程序中的服务器端获取用户IP地址 以便我可以用一堆东西记录IP地址 例如 订阅邮件列表的非注册用户 或者只是做任何事情 重要的 我知道 当涉及反向代理时 服务器 看到 的 IP 地址可能与真实源地址不同 在这种情况下 X
  • MYSQL 中的规范化

    MySQL 中的规范化是什么 在什么情况下以及如何使用它 我尝试在这里用外行术语来解释标准化 首先 它适用于关系数据库 Oracle Access MySQL 因此它不仅仅适用于 MySQL 规范化是为了确保每个表具有唯一的最小字段并消除依
  • uint32_t 与 int 作为日常编程的约定

    什么时候应该使用 stdint h 中的数据类型 总是使用它们作为惯例是正确的吗 像 int 和 Short 这样的非特定大小类型的设计目的是什么 什么时候应该使用 stdint h 中的数据类型 当编程任务指定整数宽度时 特别是为了适应某
  • 在 Facebook 等 iOS 应用程序中预览嵌入链接

    我正在尝试以与 Facebook 相同的方式在 iOS 应用程序中嵌入链接预览 我正在尝试找到一种方法来获取最合适的图像 并返回其 url 页面标题 甚至可能是元描述并将其传递回应用程序 但我不确定最好的方法 有一些 API 可以做到这一点
  • 在 Tkinter 中拖放?

    在 tkinter 中完成拖放的正确 官方 正确 推荐的方法是什么 我的文档第 24 1 1 节包括 Tkdnd 对 Tkinter 的拖放支持 这是实验性的并且 当它被 Tk DND 取代时 它应该被弃用 但我找不到其他的official
  • 正则表达式仅允许数字或空字符串

    有人可以帮我创建这个正则表达式吗 我需要它来检查字符串是否完全是空白 空 或者是否只包含正整数 如果还有其他事情 那就失败了 这是我到目前为止所拥有的 s 0 9 0 9 您正在寻找 s d 如果您想要一个不带前导零的正数 请使用 1 9
  • 如何使用 Expo EAS 为 React Native 中的 组件启用动画 webp?

    使用 Expo EAS 构建时 动画 gif 在 Android 中可以工作 但动画 webp awebp 则不能 Why 如何让 awebp 工作 为什么 gif 动画可以用 但它却不起作用 React Native 有动画图像支持多种格