Добре, това е доста сложно за обяснение, което обяснява многословното заглавие: В моето Objective C приложение генерирам JSON низ, който да съдържа всички мои свойства за обектите, които трябва да начертая в браузъра ARchitect на wikitude SDK (доколкото тъй като знам, че 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";
и работи добре, също така изображението е правилно заредено в разширения изглед.
Прочетох за кодиране на изображението (до което мога да осъществя достъп и да го изтегля в частта object c на приложението) в base64 и съхраняването на този низ в допълнително свойство JSON, за да го заредя в свойството src на елемента html img с <img src="data:image/png;base64,BASE&$_ENCODED_DATA"></img>
, но това изглежда като наистина мръсно и прекалено непрактично решение/хак за това, което се опитвам да постигна. Също така не знам дали е по-добра идея да започнете да четете как да приложите удостоверяването за достъп до това изображение в защитената зона на уеб сървъра или по-скоро да започнете да прилагате грозното кодиране base64 или да продължите да търсите алтернативи.
Не моля за решение, а по-скоро за предложения какви възможности са ми останали за достъп до това изображение. Тъй като ми свършиха идеите, всяка помощ е благодарна.
Благодаря ти!
Кратко обобщение:
- изображението е достъпно и изтеглено в обективна c част
- изображението е достъпно с метода AR.ImageResource на wikitude SDK (но не е необходимо)
- изображението не може да бъде достъпно директно чрез url от javascript, защото е необходимо удостоверяване
(Надявам се, че въпросът ми е разбираем, питайте, ако нещо не е ясно, особено след като английският не е първият ми език и би било дори сложно да го обясня на немски..)