yandexads-flutter
41 строка · 1.1 Кб
1import Flutter
2import UIKit
3import YandexMobileAds
4
5class YandexAdsNativeViewFactory: NSObject, FlutterPlatformViewFactory {
6private var api: YandexAdsNativeComponent
7
8init(api: YandexAdsNativeComponent) {
9self.api = api
10super.init()
11}
12
13func create(withFrame frame: CGRect, viewIdentifier viewId: Int64, arguments args: Any?) -> FlutterPlatformView {
14let params = args as! [String: Any]
15let id = params["id"] as! String
16
17let native = api.banners[id]
18
19return NativeView(
20frame: frame,
21viewIdentifier: viewId,
22native: native)
23}
24
25public func createArgsCodec() -> FlutterMessageCodec & NSObjectProtocol {
26return FlutterStandardMessageCodec.sharedInstance()
27}
28}
29
30class NativeView: NSObject, FlutterPlatformView {
31private var native: NativeData? = nil
32
33init(frame: CGRect, viewIdentifier viewId: Int64, native: NativeData?) {
34super.init()
35self.native = native
36}
37
38func view() -> UIView {
39return native?.view ?? UIView()
40}
41}
42
43