mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
57 lines
1.5 KiB
Swift
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) {
|
|
}
|
|
}
|