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

时间:2016-12-07 00:44:34

标签: fonts font-face nativescript

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

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

1 个答案:

答案 0 :(得分:3)

这在NativeScript中实际上非常简单;但是如果你不想复制任何代码,那就有问题了。您必须将字体放在/ app / fonts文件夹中,甚至是您下载的字体。

您的步骤是:

  1. 将字体下载到/app/fonts/文件夹,您可以使用任何有效的方法下载它们 不幸的是,字体注册系统在fonts文件夹中查找任何自定义字体;所以除非你想要复制"您自己的代码库中的注册码;只需将新字体放入/app/fonts/文件夹即可。
  2. 注册ios的字体:
  3. if (!global.android) { var fonts = require('ui/styling/fonts'); fonts.ios.registerFont('MyFont.ttf'); // or .otf }

    1. 直接将MyFont分配给商品的样式属性; (即SomeLabel.style.fontFamily = "MyFont";
      1. 将font-family指定为css值;然后分配css Page.addCss('MyCoolFont { font-family: myFont; }");
      2. SomeLabel.cssClass = 'myCoolFont';