Подтвердить что ты не робот

Загружать файлы из локальной файловой системы на веб-сайт WKWebView из файла://URL

Извините заранее, если я оставил любую соответствующую информацию в этом вопросе: я не веб-разработчик, поэтому я не уверен, какая именно информация необходима для решения моей проблемы.

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

  WKWebViewConfiguration *webViewConfiguration = [[WKWebViewConfiguration alloc] init];
  WebViewManager *manager = [[WebViewManager alloc] init];
  webViewConfiguration.userContentController = manager;
  WKWebView *aWebView = [[WKWebView alloc] initWithFrame:self.view.bounds
                                           configuration:webViewConfiguration];
  [aWebView loadRequest:[NSURLRequest requestWithURL:aUrl]];
  [aWebView setNavigationDelegate:manager];

Файлы HTML для этого веб-сайта хранятся в пакете приложений (URL file://) и должны иметь доступ к различным изображениям, файлам CSS, файлам JS и другим ресурсам, которые хранятся в том же каталоге в (для этой цели есть относительные URL-адреса в HTML).

Теперь я должен иметь возможность предоставлять изображения из контейнера совместно используемого приложения (доступ к которому осуществляется методом containerURLForSecurityApplicationGroupIdentifier: NSFileManager).

Однако указанные мной URL-адреса не работают. Когда я просматриваю страницу в Safari Debugger, я вижу, что исключение генерируется в каком-то коде jQuery, который включает в себя загрузку файлов.

Я исследовал ряд возможных обходных решений, но никто из них не решил мою проблему:

Новый метод loadFileURL:allowingReadAccessToURL: оказался именно тем, что мне нужно, однако установка параметра readAccessURL в папку в моем общем контейнере безопасности сломала веб-сайт - действительно, он даже не выглядел как файлы HTML сами загружались должным образом, так как ни один из них не имел правильных имен в Safari Debugger. В качестве теста я установил URL-адрес в URL-адрес в каталоге каталога, содержащего HTML-страницы, и получил другую ошибку.

Другой разработчик предположил, что мы конвертируем каждое изображение извне пакета в строку с кодировкой base64 и передаем его на сайт через Javascript, но для меня это кажется ужасно неэффективным, поэтому я надеюсь избежать этого результата.

Наконец, я читал в другом месте, что копирование файлов в каталог tmp/www приложения решает аналогичные проблемы с этим на iOS 8; поэтому я задаюсь вопросом, может ли скопировать все в один и тот же каталог (вне пакета, который, конечно, доступен только для чтения). Однако это тоже кажется крайне неэффективным.

Как загружать файлы изнутри пакета и в общий контейнер приложения в мой веб-просмотр?

4b9b3361