Большинство примеров, которые я вижу для представлений платформы, представляют собой либо отдельное приложение флаттера, либо плагин флаттера, такой как google maps/web view. Где, как и в моем случае, я добавляю модуль флаттера в свой проект iOS. Есть ли способ включить представления платформы из моего хост-приложения iOS в код представления модуля флаттера. Я следую руководству от здесь :

Но смущает следующий фрагмент кода:

self.registrar(forPlugin: "Runner").register(fuelFactory, withId: "webview")

Потому что прямо сейчас я звоню регистратору для плагина «Runner», так как представления платформы находятся в самом хост-приложении, а не в плагине. Что здесь следует сделать?

        let testFactory = TestFlutterViewFactory(controller: flutterVC)
        self.registrar(forPlugin: "Runner").register(testFactory, withId: "webview")
        flutterVC.setInitialRoute("/")
        GeneratedPluginRegistrant.register(with: self.flutterEngine!)
        self.window?.rootViewController = flutterVC

Но я получаю следующую ошибку.

Unhandled Exception: PlatformException(unregistered_view_type, trying to create a view with an unregistered type, unregistered view type: 'webview’)
2
Ashildr 20 Дек 2019 в 08:12
Вы нашли какое-нибудь решение?
 – 
abh
23 Июл 2020 в 15:39
1
Нет. В итоге я написал для этого плагин.
 – 
Ashildr
23 Июл 2020 в 19:44

1 ответ

Вам просто нужно позвонить регистратору на флаттер движке, все остальное в порядке

self.flutterEngine?.registrar(forPlugin: "Runner").register(testFactory, withId: "webview")
0
abh 28 Июл 2020 в 23:47