Wkwebview не загружает второй css

Я загружаю локальный HTML с помощью WKWebView. Файл HTML загружает файл main.css из того же места. CSS работает.

Если я щелкну ссылку, загрузка другого HTML-файла, скажем, из dir/another.html, который загружает CSS с ../main.cssссылка даже не открывается.

Когда я удалю ссылку CSS из dir/another.html, загрузится HTML.
Кто-нибудь может мне с этим помочь? o.O


ViewController

override func viewDidLoad() {

    content.isOpaque = false
    content.uiDelegate = self
    content.navigationDelegate = self
    let url = Bundle.main.url(forResource: result?.id, withExtension: "html", subdirectory: "location".localized)!
    // result?.id is pointing to index.html at "location".localized

    let request = URLRequest(url: url)
    content.loadFileURL(url, allowingReadAccessTo: url)
    content.load(request)

    super.viewDidLoad()

}

1-й HTMLindex.html

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="user-scalable=no, initial-scale=1" />
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>

    <div class="anything">
        <a href="dir/another.html">Link</a>
    </div>
    ...

2-й HTMLdir/another.html

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="user-scalable=no, initial-scale=1" />
        <link rel="stylesheet" type="text/css" href="../style.css">
    </head>
    <body>

    <div class="anything">
        <a href="dir/another.html">Link</a>
    </div>
    ...

Больше информации по запросу :)

Что за ошибка? Я имею ввиду в консоли (F12). Если есть

kademat 13.09.2018 20:31

прости @kademat, а что за приставка? Вывод Xcode?

Tomáš Pánik 13.09.2018 20:33

«Дополнительная информация по запросу» Как насчет получения дополнительной информации для начала? Вы не показали никакого кода - как вы «загружаете локальный HTML», как выглядит ваш реальный HTML, ничего.

matt 13.09.2018 20:38

@ TomášPánik Я имею в виду консоль, например, из Google Chrome после нажатия вашей ссылки: ExampleConsole Отсутствие вывода в консоль после нажатия ссылки также является полезной информацией :)

kademat 13.09.2018 20:43

извините @kademat, я не могу получить доступ к какой-либо консоли из симулятора iOS, на котором работает мое приложение ...

Tomáš Pánik 13.09.2018 20:46

извините @matt, вопрос редактирования :)

Tomáš Pánik 13.09.2018 20:47

@matt Я считаю, что вопрос решен

Tomáš Pánik 13.09.2018 20:52

Спасибо за добавленный код :) Можете ли вы попробовать переместить второй dir/another.html в another.html, отредактировать ../style.css на style.css и убедиться, что он работает? Целью этого является устранение других ошибок, таких как некоторые проблемы конфигурации со ссылками.

kademat 13.09.2018 20:53
content.loadFileURL(url, allowingReadAccessTo: url) Вы ограничиваете доступ к url, но это не то место, где находится другая страница. Кажется, это так просто.
matt 13.09.2018 20:55

@matt, ты прав, я этого не заметил. есть ли простой способ разрешить всю корневую папку?

Tomáš Pánik 13.09.2018 21:07

Вы можете подключить Safari к вашему симулятору WKWebView в меню «Разработка» (вам может потребоваться включить это меню в настройках Safari -> «Дополнительно»).

David S. 13.09.2018 21:09

@DavidS. лол это круто: D не знал, что

Tomáš Pánik 13.09.2018 21:13

@DavidS. Мэтт был прав. произошла ошибка при загрузке ресурса.

Tomáš Pánik 13.09.2018 21:32
0
13
902
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ты говоришь:

content.loadFileURL(url, allowingReadAccessTo: url)

Таким образом, вы ограничиваете доступ к каталогу это (обозначенному url). Тогда вас совершенно справедливо блокируют, когда вы пытаетесь получить доступ к ресурсу в каталоге другой.

Я понял ваш предыдущий комментарий по этому поводу, вы правы :) Мэтт, пожалуйста, есть ли какое-нибудь простое решение использовать этот метод и разрешить ReadAccessTo корневому каталогу HTML, включая все там вещи?

Tomáš Pánik 13.09.2018 21:49

Использовать URL-адрес самого Bundle.main?

matt 13.09.2018 21:53

как именно это сделать? извините за глупые вопросы

Tomáš Pánik 13.09.2018 22:09

Другие вопросы по теме