Я разрабатываю приложение для iphone, которое использует UIWebView для отображения страницы на основе HTML5. Требования включают в себя:
1: страница должна отображать встроенный SVG.
2: странице требуется доступ к localStorage.
Чтобы правильно настроить тип MIME для работы встроенного SVG, я сначала попытался использовать приведенный ниже код для заполнения веб-представления:
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSURL *baseURL = [[NSURL alloc] initFileURLWithPath:resourcePath];
[self.webView loadData:htmlData
MIMEType:@"application/xhtml+xml"
textEncodingName:@"UTF-8"
baseURL:baseURL];
Однако, пытаясь использовать эту технику, я продолжал выявлять исключения SECURITY_ERR при попытке получить доступ к локальному хранилищу:
Документация W3C для localStorage и SECURITY_ERR
Я нашел кого-то, у кого была такая же проблема, и они полагали, что это связано с происхождением домена
Пост, освещающий проблемы с доступом к UIWebView и localStorage
Они решили свою проблему, используя вместо этого NSURLRequest:
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:[path stringByAppendingString:@"path and file name of the file"]];
NSURLRequest *request = [NSURLRequest requestWithURL:baseURL];
[webView loadRequest:request];
Это, похоже, решает мои проблемы с localStorage, однако это нарушает мой SVG, потому что я не знаю, как явно установить тип mime в этом случае.
Итак, вопрос в том, как мне загрузить данные с правильным типом mime для встроенного svg, сохраняя при этом соответствие исходного документа требованиям localStorage?
Спасибо за помощь:)