我正在编写一个iOS应用程序,它将在离线的UIWebView中加载KRPano全景图。这意味着我已经在我的iOS项目中复制了我的KRPano文件结构(index.html +数据目录),并且我试图使用swift代码加载文件:
//load a file
guard let urlResource = NSBundle.mainBundle().URLForResource("index", withExtension: "html") else {
print ("error")
return
}
let webRequest = NSURLRequest(URL: urlResource)
webView.loadRequest(webRequest)
如果从远程位置加载全景图,则btw有效。可能是什么问题?
答案 0 :(得分:1)
如果没有手动编辑Krpano文件,这是不可能的。我们通过自动修复从网络下载的JavaScript文档,在我们的应用程序(Offline Pages Pro)中解决了这个问题。我们的实施非常复杂,但最终它允许离线浏览Krpano游览。
问题是Krpano HTML5查看器使用XMLHttpRequests加载内容。如果内容是本地的(即file://),XMLHttpRequest也可以成功,但它不会产生Krpano期望的HTTP状态代码200。
您可以尝试实现NSURLProtocol以覆盖XMLHttpRequests,它可以在IOS 9中工作但是从iOS 8开始,它不起作用,因为XMLHttpRequests完全绕过了NSURLCache和NSURLProtocol。