正在 iOS locally/offline 上加载 KRPano 全景图
Loading KRPano panorama on iOS locally/offline
我正在编写一个 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)
顺便说一下,如果全景图是从远程位置加载的,那么它会起作用。可能是什么问题?
不手动编辑 Krpano 文件是不可能的。我们在我们的应用程序 (Offline Pages Pro) 中通过自动修复从网络下载的 JavaScript 文档解决了这个问题。我们的实现比较复杂,但最终还是可以离线浏览Krpano的导览。
问题是 Krpano HTML5 查看器使用 XMLHttpRequests 加载内容。如果内容是本地的(即 file:// ) XMLHttpRequest 也可以成功,但它不会产生 Krpano 期望的 HTTP 状态代码 200。
您可以尝试实现 NSURLProtocol 来覆盖 XMLHttpRequests,它可以在 IOS 9 中工作,但从 iOS 8 开始,它不起作用,因为 XMLHttpRequests 完全绕过了 NSURLCache 和 NSURLProtocol。
我正在编写一个 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)
顺便说一下,如果全景图是从远程位置加载的,那么它会起作用。可能是什么问题?
不手动编辑 Krpano 文件是不可能的。我们在我们的应用程序 (Offline Pages Pro) 中通过自动修复从网络下载的 JavaScript 文档解决了这个问题。我们的实现比较复杂,但最终还是可以离线浏览Krpano的导览。
问题是 Krpano HTML5 查看器使用 XMLHttpRequests 加载内容。如果内容是本地的(即 file:// ) XMLHttpRequest 也可以成功,但它不会产生 Krpano 期望的 HTTP 状态代码 200。
您可以尝试实现 NSURLProtocol 来覆盖 XMLHttpRequests,它可以在 IOS 9 中工作,但从 iOS 8 开始,它不起作用,因为 XMLHttpRequests 完全绕过了 NSURLCache 和 NSURLProtocol。