在 React Native 项目上使用 Typekit (Adobe) 字体?



我最近打开了一些移动应用程序模型,我必须开发。我正在使用React Native(与Expo(。问题是,这个模型使用了很多Adobe字体(Typekit(。

我遇到了文档:https://helpx.adobe.com/fonts/using/embed-codes.html,它可以在 Web 应用程序上使用,而不是在编译的移动应用程序上使用。

我找不到任何问题,但我想知道移动应用程序开发人员如何在他们的项目中实现 Typekit 字体?

从 Adobe 网站上的字体许可页面:

我可以在我正在构建的移动或桌面应用程序中嵌入字体吗?不。字体许可不允许您在其中嵌入字体 移动或桌面应用程序。这需要适当的许可证 直接从铸造厂或其授权工厂购买 经销商。

繁琐的方法:(仅供参考或测试目的(

警告:Adobe 可能不允许以下下载字体以供离线使用的方法。相反,您应该从其他地方获取字体文件,谷歌字体允许您下载它们。

一旦您将字体添加到Typekit上的Web项目中,请获取嵌入链接(href(,该链接将用于获取普通Web项目的.css,例如https://use.typekit.net/XXXXXX.css.在浏览器中访问网站以查看内容,并从每个@font-facecss 块下载第一个链接。将其重命名为"fontName".woff2

@font-face {
font-family:"bungee";
src:url("https://use.typekit.net/af/dd8be0/00000000000000003b9b2a4f/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3") format("woff2"),url("https://use.typekit.net/af/dd8be0/00000000000000003b9b2a4f/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3") format("woff"),url("https://use.typekit.net/af/dd8be0/00000000000000003b9b2a4f/27/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3") format("opentype");
font-display:auto;font-style:normal;font-weight:400;
}

在某处将其转换为.ttf*,将其重命名为字体名称并按照通常的字体安装方式进行操作。(即使用react-native.config.js和资产/字体/目录,并在项目的样式对象中使用字体名称**(不是字体文件名(。

的经验:我设法从 css 文件中从 Typekit 下载了 woff2 格式的字体,将其转换为 ttf,将字体文件重命名为字体名称,将其放置在项目中,运行npx react-native link(即使我使用自动链接(,因此它可以在 iOS 和 Android 应用程序上运行。

我最近回答了一个关于如何为反应原生安装字体的问题。

*我们为什么要转换为 ttf?:每个 @font 面块都有多种不同的格式,但第一个链接(woff2 格式(仅适用于 iOS 上的 react native。Android无法加载它,甚至Android工作室也无法打开该文件。最后一个链接(otf 格式(仅适用于 Android,iOS 无法加载它。所以解决方案只是获取 woff2 文件并将其转换为 ttf,这是我通常在 react native 上用于自定义字体的。

**为什么我需要将文件重命名为字体名称?:请记住,iOS 使用字体名称,但 android 使用文件名。最简单的解决方案是将文件重命名为字体名称,这样您的代码就可以在 iOS 和 android 上运行,而无需使用Platform模块。(找出字体名称是通过使用字体应用程序打开字体(

正确的方法是指定需要在 react 本机代码中使用的任何字体。意思是使用它。 然后在您的 android 和 ios 构建项目中,只需将字体导入您的资源即可。 希望这有帮助

最新更新