从 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 文件夹中,包括您下载的字体。
您的步骤是:
- 将字体下载到
/app/fonts/
文件夹,您可以使用任何有效的方法下载it/them。
不幸的是,字体注册系统会在字体文件夹中查找任何自定义字体;所以除非你想"duplicate"你自己的代码库中的注册码;只需将新字体放入 /app/fonts/
文件夹即可。
- 为ios注册字体:
if (!global.android) {
var fonts = require('ui/styling/fonts');
fonts.ios.registerFont('MyFont.ttf'); // or .otf
}
- 将
MyFont
直接分配给项目的样式属性; (即 SomeLabel.style.fontFamily = "MyFont";
)
或
- 将字体系列分配给 css 值;然后分配 css
Page.addCss('MyCoolFont { font-family: myFont; }");
到 SomeLabel.cssClass = 'myCoolFont';
NativeScript 支持使用打包在应用程序 app/fonts
目录中的自定义字体。一种是用 CSS font-family
规则引用它们。我需要能够使用在 运行 时间从网站加载的自定义字体。
在本机 Android 中,可以或多或少地直接从网址加载字体(只需打开 URL 的输入流并将其提供给 Typeface
构造函数).在 iOS 中也是可能的(根据 this thread)。是否支持在 NS 中做类似的事情(使用从网络加载的自定义字体),而不是下降到本机代码?
这实际上在 NativeScript 中非常简单;但是,如果您不想复制任何代码,则有一个陷阱。您必须将字体放在 /app/fonts 文件夹中,包括您下载的字体。
您的步骤是:
- 将字体下载到
/app/fonts/
文件夹,您可以使用任何有效的方法下载it/them。
不幸的是,字体注册系统会在字体文件夹中查找任何自定义字体;所以除非你想"duplicate"你自己的代码库中的注册码;只需将新字体放入/app/fonts/
文件夹即可。 - 为ios注册字体:
if (!global.android) {
var fonts = require('ui/styling/fonts');
fonts.ios.registerFont('MyFont.ttf'); // or .otf
}
- 将
MyFont
直接分配给项目的样式属性; (即SomeLabel.style.fontFamily = "MyFont";
)
或
- 将字体系列分配给 css 值;然后分配 css
Page.addCss('MyCoolFont { font-family: myFont; }");
到SomeLabel.cssClass = 'myCoolFont';