从 NativeScript 中的 URL 加载自定义字体

Loading custom fonts from a URL in NativeScript

NativeScript 支持使用打包在应用程序 app/fonts 目录中的自定义字体。一种是用 CSS font-family 规则引用它们。我需要能够使用在 运行 时间从网站加载的自定义字体。

在本机 Android 中,可以或多或少地直接从网址加载字体(只需打开 URL 的输入流并将其提供给 Typeface 构造函数).在 iOS 中也是可能的(根据 this thread)。是否支持在 NS 中做类似的事情(使用从网络加载的自定义字体),而不是下降到本机代码?

这实际上在 NativeScript 中非常简单;但是,如果您不想复制任何代码,则有一个陷阱。您必须将字体放在 /app/fonts 文件夹中,包括您下载的字体。

您的步骤是:

  1. 将字体下载到/app/fonts/文件夹,您可以使用任何有效的方法下载it/them。
    不幸的是,字体注册系统会在字体文件夹中查找任何自定义字体;所以除非你想"duplicate"你自己的代码库中的注册码;只需将新字体放入 /app/fonts/ 文件夹即可。
  2. 为ios注册字体:

if (!global.android) { var fonts = require('ui/styling/fonts'); fonts.ios.registerFont('MyFont.ttf'); // or .otf }

  1. MyFont直接分配给项目的样式属性; (即 SomeLabel.style.fontFamily = "MyFont";

  1. 将字体系列分配给 css 值;然后分配 css Page.addCss('MyCoolFont { font-family: myFont; }");SomeLabel.cssClass = 'myCoolFont';