Как загрузить локальный каталог внутри iframe в iOS Swift?

В функцию loadHTMLStringImage я был загружен index.html

let htmlPath = Bundle.main.path(forResource: "index", ofType: "html")
let htmlUrl = URL(fileURLWithPath: htmlPath!, isDirectory: false)   
self.webView.loadFileURL(htmlUrl, allowingReadAccessTo: htmlUrl)

После загрузки я проверял строку md5. Из md5 zip-файла я распаковываюсь в локальный каталог и получаю URL-адрес локального каталога файлов. И передача URL локального каталога в iframe src. Но это показывает пустой экран.

В консоли это показывает:

Received an unexpected URL from the web process: 'file:///var/mobile/Containers/Data/Application/CECB33DC-8DE8-4FB0-BD28-73D46B47CB7C/Documents/appday/gng/v0-8/build/index.html'
2020-02-11 16:55:53.659227+0530 appday[15903:3679464] [Process] 0x10791c018 - WebPageProxy::Ignoring request to load this main resource because it is outside the sandbox

В viewDidLoad у меня тоже есть WKPreference:

webView.navigationDelegate = self
webView.uiDelegate = self
webView.allowsBackForwardNavigationGestures = true

webView.configuration.preferences.javaScriptEnabled = true
webView.configuration.preferences.setValue(true, forKey: "allowFileAccessFromFileURLs")

Здесь я загружаю URL локального каталога в iframe src. И df - путь URL локального каталога к разархивированному файлу:

Мой URL-путь выглядит так:

'file:///var/mobile/Containers/Data/Application/CECB33DC-8DE8-4FB0-BD28-73D46B47CB7C/Documents/appday/gng/v0-8/build/index.html'


let url_path = df.absoluteString
let setPath = url_path

let js = "setFrame('" + setPath) 
print("js::(js)")

Здесь я пытаюсь загрузить URL-адрес локальной файловой директории в iframe src.

Вот мой локальный javascript файла index.html, куда я загружаю iframe src:

 <iframe id='formFrame' src="" width="100%" height="100%" frameborder="0" scrolling="yes" allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen></iframe>

    function setFrame(url) {
  document.getElementById('formFrame').src = url;

}

[Примечание: я являюсь содержимым iframe с URL-адреса локального каталога, не загружается в локальный файл HTML]

Любая помощь высоко ценится пожалуйста ...

Всего 1 ответ


import UIKit
import WebKit

class EventWallVC: UIViewController {

let directoryName : String = "appday/gng/v0-8/build"
//MARK: - IBOutlet
@IBOutlet weak var webView: WKWebView!
@IBOutlet weak var lblEventWall: UILabel!

override func viewDidLoad() {
       super.viewDidLoad()
       SVProgressHUD.show()
       self.webView.navigationDelegate = self

        var indexfileurl = URL(string: "")
        let path = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("(directoryName)/(index.html)")
         indexfileurl = URL(fileURLWithPath: path)

       //let url = Bundle.main.url(forResource: "index", withExtension: "html", subdirectory: "")! /* your local bundle in save index.html file to get this */
       self.webView.loadFileURL(indexfileurl, allowingReadAccessTo: indexfileurl)
       let request = URLRequest(url: indexfileurl)
       self.webView.load(request)

   }
}

extension EventWallVC: WKNavigationDelegate {
   func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
       SVProgressHUD.dismiss()

   }
}

Есть идеи?

10000