mirror of
https://github.com/divkit/divkit.git
synced 2026-06-06 20:07:59 +00:00
71f634bec4
commit_hash:89fe30647b25dbbfb4349af0173ca6023d3a2e29
43 lines
1.2 KiB
Swift
43 lines
1.2 KiB
Swift
import DivKit
|
|
import DivKitExtensions
|
|
import UIKit
|
|
|
|
final class DivHostViewController: UIViewController {
|
|
lazy var divKitComponents = makeDivKitComponents()
|
|
lazy var divView = DivView(divKitComponents: divKitComponents)
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
view.addSubview(divView)
|
|
|
|
Task {
|
|
await configureDivView()
|
|
}
|
|
}
|
|
|
|
override func viewWillLayoutSubviews() {
|
|
super.viewWillLayoutSubviews()
|
|
divView.frame = view.bounds.inset(by: view.safeAreaInsets)
|
|
}
|
|
|
|
private func configureDivView() async {
|
|
let url = Bundle.main.url(forResource: "Sample", withExtension: "json")!
|
|
let data = try! Data(contentsOf: url)
|
|
await divView.setSource(
|
|
.init(kind: .data(data), cardId: "Sample"),
|
|
debugParams: DebugParams(isDebugInfoEnabled: true)
|
|
)
|
|
}
|
|
|
|
private func makeDivKitComponents() -> DivKitComponents {
|
|
let extensionHandlers = [PinchToZoomExtensionHandler(overlayView: view)]
|
|
let customBlockFactory = SampleDivCustomBlockFactory()
|
|
let urlHandler = SampleDivActionHandler(hostViewController: self)
|
|
return DivKitComponents(
|
|
divCustomBlockFactory: customBlockFactory,
|
|
extensionHandlers: extensionHandlers,
|
|
urlHandler: urlHandler
|
|
)
|
|
}
|
|
}
|