如何在loadRequest时向UIWebView注入自定义字体?

时间:2013-12-24 10:24:26

标签: ios uiwebview uifont

我使用UIWebView以缅甸字体显示搜索测试

    NSString *googleText = @"မြန်မာဘာသာ";
    NSString *googleLink = [NSString stringWithFormat:@"http://www.google.com/search?hl=my&lr=lang_my&q=%@",
                            [[googleText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"
                             ]
                            ];

    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:googleLink]]];

这是结果 enter image description here

当从服务器加载内容时,我们是否可以将自定义字体注入UIWebView?

我没有在我的包中加载html文件,所以我不能在CSS中使用自定义字体,如this questionthis one

请帮忙!谢谢!

2 个答案:

答案 0 :(得分:2)

您可以参考以下工作代码。

NSString *cssString = [[[[@"body { font-family:" stringByAppendingString:centuryGothicRegular] stringByAppendingString:@"; font-size:"] stringByAppendingString:[NSString stringWithFormat:@"%ld",normalFont]] stringByAppendingString:@"}\""] ; //1

NSString *javascriptString = @"var style = document.createElement('style'); style.innerHTML = '%@'; document.head.appendChild(style)"; // 2
NSString *javascriptWithCSSString = [NSString stringWithFormat:javascriptString, cssString]; // 3
NSLog(@"javascriptWithCSSString: \n %@", javascriptWithCSSString);
NSString *loadedContent = [webView stringByEvaluatingJavaScriptFromString:javascriptWithCSSString];
NSLog(@"loaded ocntent: %@", loadedContent);
  

字体名称和大小声明为常量,您可以根据所需字体进行更改

答案 1 :(得分:0)

之前已经回答,我通过添加字体文件

来使用自定义

Using a UIWebView, can I use a custom font?

这是可能的,但您需要确保将应用程序键值对提供的字体添加到Info.plist。

我在本教程中了解到了这一点:http://tetontech.wordpress.com/2010/09/03/using-custom-fonts-in-your-ios-application/

我尝试使用LWFM和FFIL字体行李箱,但这不起作用。最后我需要字体的TTF文件。