Я хочу отобразить панорамное изображение, используя Pannellum (https://pannellum.org/download/) html, css & js файлы. Каким-то образом мне это удалось, но локальные панорамные изображения не отображаются, говоря: «Файл не доступен». сделать его полностью автономным, он также должен загружать локальные изображения, как я могу заставить его загружать изображения с iphone, используя локальный URL-адрес изображения?
Я должен фактически передать URL-адрес в виде строки js, которая добавляется в WKUserContentController, а затем WKWebView настраивается с ее использованием. Я пытался создать URL-адрес с классом URL swift, а также с классом NSURL, но ни один не работал. Также попытался передать в base64 образ на всякий случай, если он работает.
func addCustomScript (string: String) {
let script = WKUserScript (источник: строка ,jectionTime: .atDocumentEnd, forMainFrameOnly: true)
self.addUserScript (сценарий)
}
переопределить функцию loadView () {
super.loadView ()
let webConfiguration = WKWebViewConfiguration()
let contentController = WKUserContentController()
contentController.addCssFromFile(name: "pannellum")
contentController.addJavascriptFromFile(name: "pannellum")
//Panoramic Image
let imagePath = Bundle.main.path(forResource: "panorama", ofType: "jpg")!
let imgNSUrl = NSURL(fileURLWithPath: imagePath)
let imageURL = URL(fileURLWithPath: imagePath)
print("imagePath : \(imagePath)") //output : /var/containers/Bundle/Application/94C69C64-FC83-45AF-B1BE-0D1B2BDA4306/EasyOne360.app/panorama.jpg
print("imageURL : \(imageURL)") //output : file:///var/containers/Bundle/Application/94C69C64-FC83-45AF-B1BE-0D1B2BDA4306/EasyOne360.app/panorama.jpg
//Add pannellum viewer
let scriptSourcePano = "pannellum.viewer('panorama', { \"type\": \"equirectangular\", \"panorama\": \"\(imgNSUrl)\", \"autoLoad\": true });"
contentController.addCustomScript(string: scriptSourcePano)
//Dimensions of box
let scriptSource = "var pano = document.getElementById('panorama'); if (pano) {pano.style.width = '360px'; pano.style.height = '600px'; }"
contentController.addCustomScript(string: scriptSource)
webConfiguration.userContentController = contentController
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
Я хочу, чтобы он загружался вот так (используя этот URL - https://pannellum.org/images/cerro-toco-0.jpg в качестве примера)