字体适用于模拟器但不适用于 iOS 设备

Font works on Simulator but not iOS device

已经有一些问题与此问题相关,但我的情况不同。在我的例子中,字体是从 zip 文件下载并保存在这里的:

let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first

这是 HTML 字符串:

    <html>
        <head>
        <style type=text/css>
            @font-face { font-family: 'Rubik-Regular'; src: url('Rubik-Regular.ttf'); }
            @font-face { font-family: 'Rubik-Semibold'; src: url('Rubik-Medium.ttf'); }
            b { font-size:20px; color:#373534; letter-spacing: 1.27px; line-height: 30px; font-family: 'Rubik-Semibold'; background:transparent;)
            }
            p { text-align:left; font-size:20px; color:#373534; letter-spacing: 1.27px; line-height: 30px; font-family: 'Rubik-Regular'; background:transparent;  }
         </style>
        </head>
        <body>
            <header>
                <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'>
                <p>This is the text for the HTML and we <b>BOLD</b> this part</p>
            </header>
        </body>
    </html>

然后我在我的 webView 上调用 loadHTMLString:

let url = URL(fileURLWithPath: path!)
wkWebView.loadHTMLString(htmlString, baseURL: url)

不确定为什么它能在模拟器和 Android 设备上完美加载,但 HTML 字符串在真实设备上会出现问题。为什么真机无法从本地存储加载字体?

我在原始实现中遗漏的是 loadFileURL(_ URL, _ URL) 方法。此方法应在调用 loadHTMLString 之前,对我有用的是在我的自定义视图 class.

中的 awakedFromNib 方法中调用 loadFileURL()