WKWebView具有自定义字体类型和颜色

时间:2017-03-08 10:33:11

标签: ios objective-c webkit wkwebview

我想在WKWebView上加载带有自定义字体系列和文本颜色的html字符串,我试图将这个CSS嵌入到HTML中,但它不起作用:(。

 [NSString stringWithFormat:@"<html> \n"
                                   "<head> \n"
                                   "<style type=\"text/css\"> \n"
                                   "body {font-family: \"%@\"; font-size: %d;}\n"
                                   "</style> \n"
                                   "</head> \n"
                                   "<body>%@</body> \n"
                                   "</html>", @"DINNextLTW23Regular", self.fontSize,@"Text"];

2 个答案:

答案 0 :(得分:2)

首先,您可以创建一个css文件,然后在此文件中添加字体和样式

@font-face {
    font-family: 'FONT_FAMILY';
    src: local('FONT_FAMILY'),url('FONT_FILE_NAME.otf') format('opentype');
}

h1 {
    font-family: 'FONT_FAMILY';
    font-size: 20px;
    font-weight: normal;
}

使用css文件加载html字符串

NSString *css = [NSString stringWithFormat:@"<head>"
                        "<link rel=\"stylesheet\" type=\"text/css\" href=\"YOUR_CSS_FILE.css\">"
                        "</head>"];
NSString *content = [NSString stringWithFormat:@"<body>"
                        "<h1>%@</h1>"
                        @"</body>", @"YOUR_TEXT"];

[_wkWebView loadHTMLString:[NSString stringWithFormat:@"%@%@", css, content]
                   baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"YOUR_CSS_FILE" ofType:@"css"]]];

您可以使用您的

更改样式名称h1

答案 1 :(得分:-1)

font-family应该是系统字体系列。否则,您必须将自定义字体文件导入项目。