Я работаю над собственным приложением, которое использует веб-просмотр для большинства функций и использует видео tokbox для нативной видеосвязи. Когда я изначально загружаю приложение, веб-просмотр загружается нормально (он создается в построителе интерфейса).
Когда человек переходит на страницу с видео, я считаю, что API tokbox сводит веб-просмотр к нулю. Как только видео закончится, я вызываю session.disconnect()
и пытаюсь перезагрузить свой веб-просмотр, но он продолжает говорить, что найдено nil, при попытке развернуть необязательно.
Код, загружающий веб-просмотр, выглядит так:
func loadApp() {
let htmlFile = Bundle.main.path(forResource: "index", ofType: "html")
let html = try? String(contentsOfFile: htmlFile!, encoding: String.Encoding.utf8)
// this was added in hopes of initializing the webview again
if webView == nil {
webView = UIWebView(frame: self.view.bounds)
self.view = webView
}
webView.delegate = self
webView.frame = view.bounds
webView.loadHTMLString(html!, baseURL: nil)
}
он продолжает терпеть неудачу на webView.delegate = self
, и переменные экземпляра показывают, что webView по-прежнему равен нулю даже после условия if.
РЕДАКТИРОВАТЬ
веб-просмотр был зацеплен щелчком по элементу управления и перетаскиванием в UIViewController, и это выглядит так:
@IBOutlet weak var webView: UIWebView!
функция loadApp()
вызывается в двух местах: сначала в viewDidLoad()
, где она работает нормально, но затем после вызова session.disconnect()
вызывается метод делегата обратного вызова tokbox:
func sessionDidDisconnect(_ session: OTSession) {
print("The client disconnected from the OpenTok session.")
loadApp()
}
это второй раз / место, когда вызывается loadApp()
и где он терпит неудачу.