OK,这个人是相当复杂的解释,这解释了详细的标题: 在我的目标C应用程序,我产生一个JSON字符串来保存所有我的属性为对象,我需要通过在wikitude SDK的建筑师浏览器绘制(据我所知wikitude SDK只处理JSON):加载图像,而网址不能直接访问
NSString *javaScript = [self convertPoiModelToJson:self.poiData.pois];
NSString *javaScriptToCall = [NSString stringWithFormat:@"newData('%@')", javaScript];
一个特定的对象,我感兴趣的是存储在一个字符串那个JSON字符串,它是图像的URL。不过,这张图片位于我们的网络服务器上的密码保护区后面,应用程序处理身份验证。
问题出现在ARchitect浏览器中,基本上是一个.html文件,调用特定的wikitude javascript函数来构建增强现实世界并将其显示在应用程序的UIWebView中。我想在放大视图中的POI被点击在基本html div容器的页脚弹出框中时显示该图像。所以,现在我有一个URL来在Web服务器上,这是我不能直接与
document.getElementById("thumb").src = jsonObject.thumbUrl;
访问,因为需要验证,我是成功的加载图像的唯一途径的图像资源是通过var poiImage = new AR.ImageResource(jsonObject[i].iconURL, {onError: errorLoadingImage});
方法,但随后我只能在扩大视图中显示它,而不能在页脚中显示。
我试过了,它提供了一个静态字符串从网络中的一些其他图像或本地资源到视图的页脚部分中的img元素,没有像这样的问题:document.getElementById("thumb").src="marker.png";
它工作正常,图像也是正确的加载到增强视图中。
我已经阅读了有关在base64中编码图像(我可以在应用程序的目标c部分中访问和下载)并将该字符串存储在其他JSON属性中以将其加载到html img元素的src属性中用<img src="data:image/png;base64,BASE&$_ENCODED_DATA"></img>
但是这似乎是一个非常脏和过于不切实际的解决方法/黑客什么,我尽力去完成。此外,我不知道这是否是一个好主意,开始阅读有关如何实现身份验证,访问图像中的Web服务器的保护区或者说开始实施的丑恶base64编码或继续寻找替代品。
我不要求一个解决方案,而是为我所剩下的东西可能访问图像的建议。由于我用完了想法,任何帮助表示赞赏。
谢谢!
简短摘要:
- 图像接触,并以目标部分C下载
- 图像是与wikitude SDK的AR.ImageResource方法访问的(但不需要)
- 图像不能被直接访问通过JavaScript的网址,因为需要身份验证
(我希望我的问题是可理解的,随意问如果有什么不清楚,特别是因为英语不是我的第一语言,它甚至会并发解释说,在德国..)
这就是我最后做的,因为它是最简单和最前沿的方法,不需要在Web服务器上提供公共场所来存储图像或再次进行身份验证,或使用脏二进制流黑客或甚至再次加载图像。 – hajn