WKWebView 使用自定義字體

前言

最近公司產(chǎn)品想更改APP整體的字體,并且H5頁面的字體也要與APP原生的字體保持一致。

1.APP更改字體

這個比較簡單,按照常規(guī)方法更改即可
(1).將字體文件放入工程
(2).在info.plist中增加Fonts provided by application 數(shù)組類型,并將添加的字體文件添加
(3).找到字體文件對應(yīng)的具體的我們要用的字體名字

NSArray *fontFamilies = [UIFont familyNames];
for (NSString *fontFamily in fontFamilies){
      NSArray *fontNames = [UIFont fontNamesForFamilyName:fontFamily];
      NSLog (@"%@: %@", fontFamily, fontNames);
 }

(4).在設(shè)置font的地方利用

[UIFont fontWithName:@"具體的字體名" size:15];

2.WKWebView更改字體

有多種方案可以實現(xiàn),本人目前采用的是將字體文件轉(zhuǎn)為base64,然后將baser64通過css注入到webview的頁面中。
在WKWebView的代理方法中:

- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation

添加如下代碼:

NSString *fileUrl = [[NSBundle mainBundle] pathForResource:@"字體文件名" ofType:@"TTF"];
NSData *fileData = [NSData dataWithContentsOfFile:fileUrl];
NSString *boldFont = [fileData base64EncodedStringWithOptions:0];
NSMutableString *javascript = [NSMutableString string];
[javascript appendString:[NSString stringWithFormat:@"\
                              var boldcss = '@font-face { font-family: \"%@\"; src: url(data:font/ttf;base64,%@) format(\"truetype\");} *{font-family: \"%@\" !important;}'; \
                              var head = document.getElementsByTagName('head')[0], \
                              style = document.createElement('style'); \
                              style.type = 'text/css'; \
                              style.innerHTML = boldcss; \
                              head.appendChild(style);",@"字體文件對應(yīng)的具體的字體名",boldFont,@"字體文件對應(yīng)的具體的字體名"]];
 [webView evaluateJavaScript:javascript completionHandler:nil];
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 編輯于2019-02-20. 注意:只適用于webview加載本地HTML 1.webview 使用自定義字體cs...
    Cocoa_Coder閱讀 5,266評論 12 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,621評論 1 32
  • 本文系Smallfan(程序猿小風扇)原創(chuàng)內(nèi)容,轉(zhuǎn)載請在文章開頭顯眼處注明作者和出處。 分析 在iPhone 6s...
    程序猿小風扇閱讀 7,082評論 5 45
  • WKWebView 是蘋果在 WWDC 2014 上推出的新一代 webView 組件,用以替代 UIKit 中笨...
    Aiana閱讀 4,799評論 1 8
  • 1.基礎(chǔ)設(shè)施重建 2.太空產(chǎn)業(yè) 3.控制天氣 4.抵達地心 5.控制地心引力 6.回望過去 7.光速旅行 8.永不...
    徐慧棣閱讀 155評論 0 0

友情鏈接更多精彩內(nèi)容