Я создал локальный HTML-файл в своем приложении для iOS, написанный на swift. Файл HTML загружается в WKWebView следующим образом:
let url = Bundle(identifier: myIdentifier).url(forResource: "localHtmlFile", withExtension: "html")
let htmlFormatString = try String(contentsOf: url)
loadHTMLString(string: htmlFormatString, baseURL: nil)
HTML-страница содержит iframe, который я ожидаю загрузить внешнюю страницу:
<div>Test</div>
<iframe src="https://www.somepage.com"></iframe>
Локальный HTML-файл успешно загружен, так как я вижу текст Test
в div. Iframe также создан, но пуст. Если я отлаживаю с помощью Safari Developer Tools, там просто пустая HTML-страница, но ничего не загружается. Кроме того, сетевой запрос к URL не выполняется вообще.
Но если я вставлю внешний файл JavaScript с <script src="https://url-to-some-js">
, код JS будет успешно загружен, поэтому проблем с сетью не возникнет. Кроме того, если я загружаю URL-адрес напрямую с помощью webView.load(URLRequest(url: url))
, он работает нормально. Только внутри фрейма он не работает.
Как создать фреймы для внешних ресурсов, работающих в iOS WKWebView? Это вообще заблокировано iOS или мне нужно настроить что-то еще?