Swiftgram/TelegramUI/InstantPageWebEmbedNode.swift
2018-01-09 13:18:08 +04:00

57 lines
1.5 KiB
Swift

import Foundation
import TelegramCore
import WebKit
import AsyncDisplayKit
final class instantPageWebEmbedNode: ASDisplayNode, InstantPageNode {
let url: String?
let html: String?
private let webView: WKWebView
init(frame: CGRect, url: String?, html: String?, enableScrolling: Bool) {
self.url = url
self.html = html
self.webView = WKWebView(frame: CGRect(origin: CGPoint(), size: frame.size))
super.init()
if let html = html {
self.webView.loadHTMLString(html, baseURL: nil)
} else if let url = url, let parsedUrl = URL(string: url) {
var request = URLRequest(url: parsedUrl)
if let scheme = parsedUrl.scheme, let host = parsedUrl.host {
let referrer = "\(scheme)://\(host)"
request.setValue(referrer, forHTTPHeaderField: "Referer")
}
self.webView.load(request)
}
}
override func didLoad() {
super.didLoad()
self.view.addSubview(self.webView)
}
override func layout() {
super.layout()
self.webView.frame = self.bounds
}
func transitionNode(media: InstantPageMedia) -> ASDisplayNode? {
return nil
}
func updateHiddenMedia(media: InstantPageMedia?) {
}
func updateIsVisible(_ isVisible: Bool) {
}
func update(strings: PresentationStrings, theme: InstantPageTheme) {
}
}