在iOS本地/离线加载KRPano全景图

时间:2016-01-17 23:38:04

标签: ios uiwebview krpano

我正在编写一个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有效。可能是什么问题?

1 个答案:

答案 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。