如何使用自定义字体?

我在Cocoa应用程序(macgap)中有一个WebView。

(注意,我不是在谈论iOS应用中的UIWebView)

在我的CSS文件中,有一些自定义字体声明:

@font-face{
    font-family:'Quivira';
    src:url("./Quivira.ttf") format("truetype");
    font-weight:normal;
    font-style:normal;
}

我无法加载这些内容 - 我相信某种安全问题。

有时候,我可以看到控制台中有一个错误“ 不允许加载本地资源:Quivira.ttf ”(它并不总是显示这个)

什么可能导致这个? index.html文件通过file:///协议加载,所以不应该存在安全问题,因为它已经是本地的,因此应该能够加载本地资源。

我认为这可能是webkit中的一个bug。

任何人都可以在Cocoa WebView中加载自定义字体?


我试过两种方法来加载自定义字体的网页。

  • 从应用程序包(使用NSBundle)
  • 从用户指定的本地路径(使用绝对路径)
  • 在这两种情况下,我都能够显示自定义字体。 有一个HTML文件,在它旁边有一个.ttf字体文件。 在HTML文件中,我已经在内联CSS中定义了@ font-face。

    在第二种情况下,您可以从本地文件系统提供任何完整路径,webview将从该路径加载(如/Users/johndoe/Desktop/maiwebsite/index.html)。

    代码在Github上。

    从另一个SO的回答:

  • 不要获取资源路径并自行将子路径装订到它上面,而是要求捆绑包为您提供正确的路径。
  • 根本不要处理路径,请让软件包为您提供正确的URL。 (需要Mac OS X 10.6或更高版本。)
  • 如果这没有帮助,那么你可以把你的代码放在什么地方,这样我们可以尝试调试它?

    链接地址: http://www.djcxy.com/p/5929.html

    上一篇: how to use custom fonts?

    下一篇: Using a custom NSURLProtocol with UIWebView and POST requests