Хорошо, это довольно сложно объяснить, что объясняет подробное название: В моем приложении Objective C я генерирую строку JSON для хранения всех моих свойств для объектов, которые мне нужно рисовать в браузере ARchitect SDK wikitude (насколько насколько я знаю, Wikitude SDK обрабатывает только JSON) через:
NSString *javaScript = [self convertPoiModelToJson:self.poiData.pois];
NSString *javaScriptToCall = [NSString stringWithFormat:@"newData('%@')", javaScript];
Один конкретный объект, который меня интересует, хранится в виде строки в этой строке JSON, это URL-адрес изображения. Однако это изображение находится за защищенной паролем областью на нашем веб-сервере, и приложение выполняет аутентификацию.
Проблемы начинаются, когда я нахожусь в браузере ARchitect, который в основном представляет собой файл .html с вызовами определенных функций javascript Wikitude для создания мира дополненной реальности и отображения его в UIWebView в приложении. Я хочу показать это изображение, когда POI в расширенном представлении щелкнут во всплывающем окне нижнего колонтитула, которое представляет собой базовый html-контейнер div. Итак, теперь у меня есть URL-адрес ресурса изображения на веб-сервере, к которому я не могу получить прямой доступ с помощью
document.getElementById("thumb").src = jsonObject.thumbUrl;
из-за необходимости аутентификации, и единственный способ, которым мне удалось загрузить это изображение, - это метод var poiImage = new AR.ImageResource(jsonObject[i].iconURL, {onError: errorLoadingImage});
, но тогда я могу отобразить его только в расширенном представлении, но не в нижнем колонтитуле.
Я попробовал это с предоставлением статической строки из какого-либо другого изображения в Интернете или на локальных ресурсах в элемент img в разделе нижнего колонтитула в представлении без таких проблем: document.getElementById("thumb").src="marker.png";
и он работает нормально, также изображение правильно загружается в расширенном Посмотреть.
Я читал о кодировании изображения (к которому я могу получить доступ и загрузить в целевой части c приложения) в base64 и сохранить эту строку в дополнительном свойстве JSON, чтобы загрузить ее в свойство src элемента html img с <img src="data:image/png;base64,BASE&$_ENCODED_DATA"></img>
, но это кажется действительно грязным и чрезмерно непрактичным обходным путем / взломом для того, что я пытаюсь выполнить. Также я не знаю, лучше ли начать читать о том, как реализовать аутентификацию для доступа к этому изображению в защищенной области веб-сервера, или, скорее, начать внедрять уродливую кодировку base64 или продолжить поиск альтернатив.
Я прошу не решения, а скорее предложений о том, какие возможности у меня остались для доступа к этому изображению. Поскольку у меня закончились идеи, любая помощь приветствуется.
Благодарю вас!
Краткое содержание:
- изображение доступно и загружено в объективной части c
- изображение доступно с помощью метода AR.ImageResource SDK wikitude (но не требуется)
- к изображению нельзя получить доступ напрямую через URL-адрес из javascript, потому что требуется аутентификация
(Надеюсь, мой вопрос понятен, не стесняйтесь спрашивать, если что-то неясно, тем более, что английский не мой родной язык, и объяснить это на немецком было бы даже сложно..)